linux - 交替的 cron 作业问题

标签 linux cron

我正在尝试让 cron 作业在隔天运行...所以如果一个今天运行,另一个明天运行,依此类推。我知道

* * */2 * * command

将每隔一天运行一次...但无论什么日期,我都需要在一年中抵消另一个...有什么想法会在隔天运行什么命令吗?

最佳答案

这是一个让你入门的表达式

if ((c=`date -d 3/13/2012 -u +%s` / 86400 % 2 == 1)); then echo odd; else echo even; fi

命令 date -u +%s 返回自 1/1/1970 00:00:00 UTC 以来的秒数。 -u 选项使其开始和结束时间都使用 UTC,因此结果与时区无关。然后它除以 86400 计算天数,然后确定它是偶数还是奇数。对于奇数,返回码为 0(shell tr​​ue),对于偶数,返回码为 1(shell false)。

与其他解决方案相比,它的优势在于它不会在一个月或一年的边界以奇数天数连续为您提供两个偶数或奇数,因为它是从 1/1/1970 开始计算的,不考虑年份或几个月。

请注意,此方法并不完美。由于偶尔添加了闰秒,该方法可能会在午夜的几秒内做出错误的决定。

关于linux - 交替的 cron 作业问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9675510/

相关文章:

php - 在父服务器上运行虚拟容器的数据收集脚本

PHP include_once 在本地工作但调用 cron 不工作

java - Spring MVC 运行 cron 作业

linux - shell中 `find . -name`和 `find -name`的区别?

php - 在后台运行脚本并从 php 返回它的 pid

node.js - Docker Node.js Cron

linux - 从 crontab 运行时,Perl 中的 Carp 库在哪里打印日志

linux - 无法将网络摄像头视频路由到 Linux 上的虚拟视频设备(通过 OpenCV)

linux - 用一个逗号替换多个逗号 - linux 命令

linux - nasm 和 ld 的 assembly/链接问题