我有 6 个脚本,每个脚本运行大约需要 20 分钟,我想安排 cron 在奇数小时的 00、20 和 40 运行前 3 个脚本,在偶数小时以相同的间隔运行后 3 个脚本。我该如何告诉 cron 执行此操作?
它是这样的吗:
0 2,4,6,8,10,12,14,16,18,20,22,24 * * * root Script1
20 2,4,6,8,10,12,14,16,18,20,22,24 * * * root Script2
40 2,4,6,8,10,12,14,16,18,20,22,24 * * * root Script3
0 1,3,5,7,9,11,13,17,19,21,23 * * * root Script4
20 1,3,5,7,9,11,13,17,19,21,23 * * * root Script5
40 1,3,5,7,9,11,13,17,19,21,23 * * * root Script6
答案1
0 0-23/2 * * * Script1
20 0-23/2 * * * Script2
40 0-23/2 * * * Script3
0 1-23/2 * * * Script4
20 1-23/2 * * * Script5
40 1-23/2 * * * Script6
或者根据需要切换 0 小时和 1 小时。
答案2
除了 Ignacio 的回答之外:如果您的脚本每个需要“大约 20 分钟”,并且您想避免其中两个同时运行,您可能更愿意编写一个只按顺序运行六个脚本的小脚本,并将该脚本放入您的 crontab 中,每两小时运行一次。这更简单,只要 6 个脚本的完整序列在不到两小时内运行,您就没问题。