如何配置从指定起始时间开始每30分钟运行的Cronjob任务
Cron从9:15开始每30分钟执行的配置方案
避坑提醒
别直接用步长写法*/30 * * * * 你的命令,这个规则是从每小时0分开始算间隔,触发时间是每小时0分、30分,也就是9:00、9:30、10:00,完全匹配不上15分起始的时间点。
也别写*/30 9 * * * 你的命令,这个只会在9点的0分、30分触发,10点之后就不再执行,不符合循环要求。
正确配置
如果需要从9:15首次触发后,全天24小时按30分钟间隔循环,时间点依次为9:15、9:45、10:15、10:45……持续运行,直接在crontab里写入下面的规则即可:
15,45 * * * * /替换成你实际要执行的命令或脚本绝对路径
字段解释
cron规则从左到右共5个时间字段,格式为分钟 小时 日 月 周:
- 分钟位填
15,45:指定每小时的第15、45分钟触发任务,两个时间点刚好间隔30分钟 - 其余字段填
*:代表不限制小时、日期、月份、星期,所有满足分钟要求的时间点都会正常触发
可选调整
如果你不需要凌晨时段执行任务,比如只想从9:15开始到当天23:45结束,凌晨0:15到次日8:45不触发,把小时位加上范围限制即可:
15,45 9-23 * * * /替换成你实际要执行的命令或脚本绝对路径
注:cron原生没有“指定起始偏移后按间隔循环”的步长语法,步长规则永远是从对应字段的最小值开始计算间隔,直接枚举符合偏移要求的时间点是兼容性最高、最不容易出问题的写法,所有主流cron实现都支持这种配置方式。
内容的提问来源于stack exchange,提问作者Ajinkya16
相关产品推荐
相关产品推荐

