我正在尝试编写一个 cron 计划,在一个月的第二个星期一之前的星期四运行一项作业。到目前为止我有这个
0 0 8 ? * MON#2
但这是在该月的第二个星期一进行的。有没有办法让我从那个时间倒退四天到上周四?
例如,对于 2016 年 9 月,该月的第二个星期一是该月的 12 号。因此,我想将其安排在上周四(即该月的 8 号)运行。
答案1
我认为你不能在 cron 中做到这一点。也许0 0 * * 4
您应该每个星期四运行一个脚本,在该脚本中,您可以检查它是否是该月第二个星期一之前的星期四。
答案2
0 0 * * 4 [ $(date +\%d) -ge 4 -a $(date +\%d) -le 10 ] && run-script
在星期四(此处为该月任意一天的午夜)运行一个使用 test ( [
) 的 crontab 条目,并date
查看该月的某一天是否包含 4..10(含)。如果是这样,请运行您想要的任何脚本。