每个月第一个非周末的 cron 任务

每个月第一个非周末的 cron 任务

我需要在每个月的第一天运行 crontab 命令,除非第一天是星期六或星期日。在这种情况下,命令应该在下周一运行。在 1 号、2 号或 3 号星期一运行命令应该可以完成任务,但似乎不起作用。我试过这个

45 06 1-3 * 1  mycmd.ksh >cmd1.log

45 06 1 * 2-5  mycmd.ksh >cmd2.log

第二条命令每天 6 点 45 分运行。根据我的理解,如果日期是星期二至星期五,它应该在任何一个月的 1 号 06 点 45 分运行。它今天 21 号星期五 6 点 45 分运行!

有什么线索吗?

谢谢

答案1

正如man页面所crontab(5)明确指出的那样:

注意:命令执行的日期可以在以下两个字段中指定 - “月份中的日期”和“星期几”。如果两个字段都受到限制(即不包含“*”字符),则当任一字段与当前时间匹配时,将运行命令。例如,“30 4 1,15 * 5”将导致命令在每个月 1 日和 15 日的凌晨 4:30 以及每个星期五运行。

您需要编写一个 crontab 条目,在每月的第一天、第二天和第三天运行该作业,并修改该作业以检查当天的日期来决定是否继续。

相关内容