我有七个脚本要启动,需要很长时间来处理,所以对于我的第一个想法,我像这样编写了我的 crontab:
0 */3 0 0 0 /home/personal/my-script-1
0 */3 0 0 0 /home/personal/my-script-2
0 */3 0 0 0 /home/personal/my-script-3
0 */3 0 0 0 /home/personal/my-script-4
...
Run Code Online (Sandbox Code Playgroud)
在这种情况下,我所有的脚本都一起启动。我想要的是从偏移量开始。所以我改变了我的方式crontab并在作业之间设置了 5 分钟的偏移:
0 0-59/3 0 0 0 /home/personal/my-script-1
0 5-59/3 0 0 0 /home/personal/my-script-2
0 10-59/3 0 0 0 /home/personal/my-script-3
0 15-59/3 0 0 0 /home/personal/my-script-4
...
Run Code Online (Sandbox Code Playgroud)
但我不确定我的编辑。我的脚本是否会被安排在三个小时的空间内启动并抵消 5 分钟?
恐怕不是。
crontab 的第二个字段指定脚本将在一天中运行的小时数。所以第一个将从 0h00 到 59h00 每三个小时运行一次(这是无效的!小时只从 0-23 运行),下一个从 5h00 到 59h00 每三个小时运行一次,依此类推。
如果要设置分钟,则需要使用第一个字段。
0 */3 0 0 0 /home/personal/my-script-1
5 */3 0 0 0 /home/personal/my-script-2
10 */3 0 0 0 /home/personal/my-script-3
15 */3 0 0 0 /home/personal/my-script-4
Run Code Online (Sandbox Code Playgroud)
这将在 0h05、3h05 等运行第二个脚本,在 0h10、3h10 等运行第三个脚本。
更好的是,如果脚本应该始终以相同的顺序运行,只需编写另一个脚本,按顺序调用它们。这样,即使其中一个脚本恰好需要 6 分钟或更长时间,您也不会遇到问题。