希望在每月的第一个星期一执行脚本,然后在每月的第一个星期三执行不同的脚本。
问题是,例如,如果新的月份从星期二开始,那么“本月的第一个星期三”动作将首先出现。我想对此进行配置,以便“本月的第一个星期三”操作仅在该月的星期一之后发生。
逻辑可以用来从脚本的角度来解决这个问题,但问题是我需要在 cron 表达式中使用它,因为这是我可以在我正在使用的系统中安排它的唯一方法(它需要一个 cron 表达式来进行高级调度,并且这个系统的细节与这个问题无关)。
编辑: cron 执行的上述脚本之间没有依赖关系或关系。为了问题的简单起见,它们只是同一个 crontab 中的两个单独的 cronjobs。
为了在一个月的第一个星期一运行命令,我
crontab
最初建议使用这一行:因为第 8 个月的星期几和第 1 个月的星期天肯定是一样的,所以
crontab
指定每月前 7 天和星期一的行有望达到初衷,不是吗?不幸的是,那条
crontab
线是错误的。实际上,该kachow
脚本将在每个月的前 7 天以及每个星期一每天运行。crontab
使用一种OR
逻辑来组合月份中的几天和一周中的几天。crontab (5)
手册页提供以下说明:也需要在该
crontab
行的命令部分定义逻辑,以便将命令执行限制在每月的第一个星期一。因此,以下任一行都将按预期工作:类似地,只有在同一个月内的星期一之后才预期在一个月的第一个星期三运行的脚本可以通过以下
crontab
行之一来安排。我认为应该将每月的第 8 天和第 9 天排除在逻辑之外;相反,woof-woof
脚本会在该月的第二个星期三意外运行。