![如何:每奇数分钟执行 1 个 Cron Job,每偶数分钟执行 1 个 Cron Job?](https://linux22.com/image/535105/%E5%A6%82%E4%BD%95%EF%BC%9A%E6%AF%8F%E5%A5%87%E6%95%B0%E5%88%86%E9%92%9F%E6%89%A7%E8%A1%8C%201%20%E4%B8%AA%20Cron%20Job%EF%BC%8C%E6%AF%8F%E5%81%B6%E6%95%B0%E5%88%86%E9%92%9F%E6%89%A7%E8%A1%8C%201%20%E4%B8%AA%20Cron%20Job%EF%BC%9F.png)
我有 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)"
它能做什么?
- 取当前日期的一分钟部分
- 计算模数
- 测试它,只有测试成功后才运行该作业