You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置Cron任务让第二个任务比第一个任务晚几分钟执行?

Cron任务调度:让第二个任务延迟执行的实现方案

问题背景

我有两个Cron任务(job1和job2),需要让第二个任务比第一个任务晚几分钟执行,寻求实现指导。初始配置的两个Cron任务如下:

*/5 * * * * /dev/file1/test/test1/fls/mdm/test1.sh
*/7 * * * * /dev/file1/test/test1/fls/mdm/test2.sh

错误配置分析

执行crontab -e后输入以下内容,出现错误提示“errors in crontab file can't install”:

00 05 * * * * /dev/file1/test/test1/fls/mdm/test1.sh 02 05 * * * * /dev/file1/test/test1/fls/mdm/test2.sh 

报错原因很明确:

  • Cron的时间字段只有5个(分、时、日、月、周),这里多写了1个星号,格式不符合要求
  • 两个任务挤在同一行,Cron要求每个任务单独占一行

可行配置验证

尝试以下配置时可正常运行,但不确定第二个任务是否会按预期延迟触发:

00 */5 * * * /dev/file1/test/test1/fls/mdm/test1.sh 
02 */5 * * * /dev/file1/test/test1/fls/mdm/test2.sh 

这个配置完全符合需求:

  • 00 */5 * * * 表示每5小时的0分执行test1.sh(比如00:00、05:00、10:00等)
  • 02 */5 * * * 表示每5小时的2分执行test2.sh,刚好比第一个任务晚2分钟触发

如果你的需求是每隔5分钟执行一次,且每次test2.sh都比test1.sh晚2分钟,那应该调整为:

*/5 * * * * /dev/file1/test/test1/fls/mdm/test1.sh 
2-59/5 * * * * /dev/file1/test/test1/fls/mdm/test2.sh 

解释:

  • */5 * * * * 每5分钟执行一次test1(0分、5分、10分...)
  • 2-59/5 * * * * 从第2分钟开始,每5分钟执行一次test2(2分、7分、12分...),完美实现每次晚2分钟的效果

替代实现思路

如果两个任务的执行顺序依赖极强,不想受Cron调度的微小误差影响,可以直接在test1.sh脚本末尾添加:

sleep 120 && /dev/file1/test/test1/fls/mdm/test2.sh

这样test1.sh执行完成后,会等待2分钟(120秒)再启动test2.sh,能保证绝对的延迟顺序。

内容的提问来源于stack exchange,提问作者Jenifer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 18:10:35