在crontab中,我可以使用星号表示每个值,或“* / 2”。意味着每一个均值。

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

有帮助吗?

解决方案

根据您的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-59/2 * * * * 

每一分钟都会:

0-58/2 * * * * 

尝试

1-23/2

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

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

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

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

我意识到这已经差不多10岁了,但是我每两小时工作1-23 / 2就会遇到麻烦。

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

59 */2 * * *

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top