Cronjob 仅在该月第一个星期四的星期六进行

Cronjob 仅在该月第一个星期四的星期六进行

我希望 cronjob 仅在该月第一个星期四的星期六运行。因此,该月的第一个星期四将在星期六运行。

如果我想在每月第一个星期四 12 点运行它,我知道我可以做到。

0 12 * * 4 [ $(date +\%d) -le 7 ] && command

但是我不知道从这里去哪里,希望得到一些帮助。

答案1

crontab 没有 OR 条件,但你可以用两行来模拟它:

0 12 1-7 * * test $(date +\%u) -eq 4 && command
0 12 * * sat command

或者只是让测试条件足够智能:

0 12 * * * test ( $(date +\%u) -eq 4 -a $(date +\%d) -le 7 ) -o ( $(date +\%u) -eq 6 ) && command

相关内容