如何:每奇数分钟执行 1 个 Cron Job,每偶数分钟执行 1 个 Cron Job?

如何:每奇数分钟执行 1 个 Cron Job,每偶数分钟执行 1 个 Cron Job?

我有 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)" 

它能做什么?

  1. 取当前日期的一分钟部分
  2. 计算模数
  3. 测试它,只有测试成功后才运行该作业

相关内容