如何每 3 个月运行一次 cron 作业?

hai*_*vgi 47 linux unix cron

对于每三个月的第一天运行的作业,crontab 条目会是什么样子?

Ric*_*way 87

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

30 03 01 Jan,Apr,Jul,Oct * /path/to/script
Run Code Online (Sandbox Code Playgroud)

或者,但不太明显

30 03 01 */3 * /path/to/script
Run Code Online (Sandbox Code Playgroud)

将每三个月在 1 月 1 日、4 月、7 月和 10 月 1 日的 03:30 运行。

  • `*/3` 不是每四个月一次(12/3 = 4)吗? (11认同)
  • @warren 不,不会。这里的逻辑更像是一个现代真理陈述。例如:if(12%3 == 0): run_script()。我也想过这个!很好的问题。 (9认同)
  • +1:我一直认为 / 符号是最明显的......我尽可能使用它。(crontab 的调度部分中的单词让我感到害怕......如果我不能做 /3,我会做:“0 0 1 3,6,9,12 * /path/to/script.bash”) (5认同)
  • @warren 它真的应该是一个 mod 运算符而不是一个除法。但是哦哦哦¯\_(ツ)_/¯ (4认同)

Jon*_*des 8

维基百科对如何配置 Cron 有很好的解释。

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

0 0 1 JAN,APR,JUL,OCT  * /path/to/script.bash
Run Code Online (Sandbox Code Playgroud)