在crontab中指定“所有奇数值”?

时间:2008-09-23 17:32:25

标签: cron crontab

在crontab中,我可以使用星号表示每个值,或“* / 2”表示每个偶数值。

有没有办法指定每个奇数值? (像“1 + * / 2”这样的东西会起作用吗?)

6 个答案:

答案 0 :(得分:89)

根据您的cron版本,您应该可以(比如说数小时):

   1-23/2

通过crontab(5)联机帮助页中的EXTENSIONS部分:

   Ranges can include "steps", so "1-9/2" is the same as "1,3,5,7,9".

对于更便携的解决方案,我怀疑你只需要使用简单列表:

   1,3,5,7,9,11,13,15,17,19,21,23

但是将命令包装在一个shell脚本中可能会更容易,如果在一个奇怪的时间内没有调用它,它将立即退出。

答案 1 :(得分:57)

每一分钟都会:

1-59/2 * * * * 

每一分钟都会:

0-58/2 * * * * 

答案 2 :(得分:2)

尝试

1-23/2

从你的问题来看,我假设是Vixie Cron。我怀疑这适用于任何其他cron。

答案 3 :(得分:2)

当我阅读手册“1-23 / 2”(数小时)时就可以了。

答案 4 :(得分:0)

适用于Cronie 即使是5分钟的间隔,例如

3-58/5 * * * * /home/test/bin/do_some_thing_every_five_minute

答案 5 :(得分:0)

我意识到这已经快10岁了,但是我很难在每两小时的零时工作中得到1-23 / 2。

对于所有您的用户,都不需要精确奇数小时精度。我做了以下适合我团队需求的事情。

59 */2 * * *

第59分钟,每两个小时执行一次工作。