我想运行一个在每周六晚上 11 点生成每周报告的脚本,以及在每个月 1 日生成每月报告的另一个脚本。
如果星期六在该月 1 日的 3 天内,我不希望运行每周报告。
这是每月一次:
0 23 1 * * /home/me/monthly.sh
这是我能想到的最接近每周条目的信息......
0 23 4-? * 6 /home/me/weekly.sh
我可以将问号替换为“月底前 3 天”的意思吗?或者还有其他适合我的目的的方法吗?
能够在月底之前指定一些天数似乎是您希望在作业调度程序中拥有的功能,因此如果 crontab 无法做到这一点,我会感到有点惊讶。
我的替代方案是检查weekly.sh 中的日期,如果距第一天3 天以内,则停止。
答案1
0 23 * * 6 [ $(date +%e -d "next saturday") -gt 3 ] && /home/me/weekly.sh