如何每3个月执行一次cron工作?


Answers:


68

以下将在1月,4月,7月和10月1日的03:30运行脚本

30 03 01 Jan,Apr,Jul,Oct * /path/to/script

或者,但不太明显

30 03 01 */3 * /path/to/script

将于1月,4月,7月和10月1日的03:30每三个月运行一次。


4
+1:我一直认为/符号是最显而易见的...我会尽可能使用它。(crontab的调度部分中的单词使我感到震惊……我会这样做:“ 0 0 1 3,6,9,12 * /path/to/script.bash”,如果我做不到/ 3)
Satanicpuppy

11
不是*/3每四个月(12/3 = 4)?
沃伦

8
@warren不,不会。这里的逻辑更多是mod mod声明。例如:if(12%3 == 0):run_script()。我也想到了!好问题。
Goahnary

1
@Goahnary我也意识到,我也要求澄清一会儿之后:)
沃伦(

3
@warren它确实应该是mod运算符而不是除法运算符。但是,哦¯_(ツ)_ /
¯– Goahnary

7

Wikipedia很好地解释了如何配置Cron。

对于您的特定情况,您可以运行Cron Expression,每3个月运行一次-显然可以更改月份以适合您的日程安排。

0 0 1 JAN,APR,JUL,OCT  * /path/to/script.bash

2
-1虽然已将其标记为正确答案,但由于字段的顺序错误,即使它们以正确的顺序运行,也会每天出错,直到每天的午夜,直到1月,4月,7月,10月(例如01/01 02) / 01 ... 31/01 01/04 ..),而不仅仅是每三个月一次。我的答案可以,但是没有被接受。难过我!
理查德·霍洛威

@Richard Holloway-服务器故障的奥秘-更新了我的答案,感谢您指出错字
Jon Rhoades 2010年

1
我已删除-1以反映更改。
理查德·霍洛威

您也不应该在逗号后留空格,许多cron实现会将其视为分隔符。您可能还会遇到需要数月的实现,尽管我认为这些天很少见。
David Spillett

@David Spillett,谢谢,我们最终会到达那里的。。。如果我有任何体面的话,我会删除它;)
乔恩·罗德斯
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.