我希望 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