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


72

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

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

Answers:


100

根据您的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脚本中可能会更容易,如果没有在奇数分钟内调用该命令,该脚本将立即退出。


71

每奇数分钟将是:

1-59/2 * * * * 

每隔一分钟将是:

0-58/2 * * * * 

3

尝试

1-23/2

根据您的问题,我假设使用Vixie Cron。我怀疑这将与其他任何cron一起使用。


3

当我阅读手册“ 1-23 / 2”(持续数小时)时,就可以解决问题。



0

我意识到这已经快10年了,但我每两小时的零工时数就很难得到1-23 / 2。

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

59 */2 * * *

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.