![Cronjob 仅在该月第一个星期四的星期六进行](https://linux22.com/image/211924/Cronjob%20%E4%BB%85%E5%9C%A8%E8%AF%A5%E6%9C%88%E7%AC%AC%E4%B8%80%E4%B8%AA%E6%98%9F%E6%9C%9F%E5%9B%9B%E7%9A%84%E6%98%9F%E6%9C%9F%E5%85%AD%E8%BF%9B%E8%A1%8C.png)
我希望 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