在本月的最后一个星期一运行的cron作业

我需要在每个月的最后一个星期一发布几个cron脚本。

我想知道是否合并范围将完成这项工作,例如:

8 04 19-26 * 2 $HOME/bin/mailstub 

我希望我的工作做得对,而且我的工作只能在每个月的19到26之间的一周进行。

很高兴听到人们的意见,

我正在使用CentOS 5.6 – 所以在某些地方提到的L构造(例如维基百科)在我的系统上不起作用。

提前致谢,

奥兹

这是设置为每天多次。 你要:

0 8 04 19-26 * * MON $ HOME / bin / mailstub

在任何一年的任何一个月的星期一19-26之间的任何一天的8:04:00都会closures。

但是,如果是19日星期一,26日是星期一。 所以你想从19-25开始

0 8 04 19-25 * * MON $ HOME / bin / mailstub

所以这个星期一应该每月一次。 但是,不能保证(或可能)成为最后一个星期一。 如果你需要它是最后的,L语法不起作用,你需要把逻辑编程到被调用的脚本中。 这很容易用python完成,但超出了这个问题的范围。

您的cron工作将在星期二(第五场,星期几,星期日0或7)运行,而不是每个月的最后一个星期二。 最好使用:

 8 04 * * 1 [ $(date +"\%m") -ne $(date -d 7days +"\%m") ] && $HOME/bin/mailstub 

这检查今天的月份是否不等于从现在开始的7天。 如果不相等,那么这是本月的最后一个星期一。