我有 2 个 cron 作业,我希望其中一个每奇数分钟运行一次(1,3,5,7,9,11....57,59),我希望另一个每偶数分钟运行一次(0,2,4,6,8,10,12...58)
我怎样才能轻松地做到这一点?(无需脚本 - 只需 cron 作业规则)
答案1
*/2 * * * * date >>/tmp/even
1-59/2 * * * * date >>/tmp/odd
答案2
*/2 * * * * /path/to/foo
*/2 * * * * sleep 60; /path/to/bar
这是否sleep 60
太像剧本了?
答案3
您可以使用
1/2 * * * * for odd minutes
*/2 * * * * for even minutes
答案4
Fo busybox
cron
(这是 alpine linux 的默认 cron 实现)据我所知,仅使用配置是不可能的。date
不过,您可以通过测试分钟部分来解决这个问题。
*/1 * * * * [ $(($(date '+%M') % 2 )) == 1 ] && echo 1 > "/tmp/odd: $(date)"
*/2 * * * * echo 1 > "/tmp/even: $(date)"
它能做什么?
- 取当前日期的一分钟部分
- 计算模数
- 测试它,只有测试成功后才运行该作业