我想要一个 cronjob 在一个月内的每个第 1 个和第 3 个星期六运行,另一个在每个第 2 个和第 4 个星期六运行。现在 crond 提供“步骤值”:
步长值可以与范围结合使用。在带有 "" 的范围之后指定跳过该范围内的数字值。例如,可以在 hours 字段中使用“0-23/2”来指定每隔一小时执行一次命令(V7 标准中的替代方案是“0,2,4,6,8,10,12,14,16 ,18,20,22")。星号后也允许步进,因此如果您想说“每两个小时”,只需使用“*/2”。
但如果我使用
30 3 * * 6/2 command
Run Code Online (Sandbox Code Playgroud)
两个脚本都(不确定地)在每个第二个星期六运行。让它们交替运行的正确方法是什么?
我知道包装脚本的可能性,但如果有更优雅的解决方案,我想避免它。
由于您知道每个月的前 7 天只有一个星期六,因此您可以遵循该模式并使用该day-of-month
字段将每个工作分开:
30 3 1-7,15-21 * 6 script1
30 3 8-14,22-28 * 6 script2
Run Code Online (Sandbox Code Playgroud)
因此script1
将始终赶上第一个和第三个星期六,script2
并将始终赶上第二个和第四个星期六。
归档时间: |
|
查看次数: |
1098 次 |
最近记录: |