设置14-18点执行范围后cronjob停止运行问题求助
Cronjob指定小时范围后不运行问题排查方案
你编写的Python代码本身没有错误,之前全时间段运行正常已经验证了代码可用性,问题出在cron配置或系统环境层面,常见原因及对应排查方法如下:
原因1:系统时区与cron运行时区不匹配
cron默认使用系统时区执行任务,你预期的14-18点是你所在时区的时间,但服务器系统时区可能为UTC等其他时区,时差导致任务未在你预期的时间段触发。
排查方法:执行date命令查看当前系统时间,确认系统时间的小时是否处于14-18区间内。如果时区不符,可修改系统时区,或根据时差调整cron的小时范围参数。原因2:cron配置未正确生效
修改crontab配置后如果未正确保存,或cron服务未加载新配置,会导致修改后的规则不生效。
排查方法:执行crontab -l检查输出的任务列表中是否存在你修改后的* 14-18 * * *对应任务,确认存在后可执行对应命令重载cron服务:- Debian/Ubuntu系统:
sudo systemctl reload cron - CentOS/RHEL系统:
sudo systemctl reload crond
- Debian/Ubuntu系统:
原因3:测试时机不符合规则要求
如果你修改配置的时间已经超过当天18点,修改后的任务最快需要等到次日14点才会第一次触发。你可以临时把小时范围调整为包含当前系统时间的区间,验证规则是否正常运行。原因4:旧版本cron不支持范围写法
部分非常老旧的Linux发行版自带的cron程序不支持14-18这种范围写法,你可以将范围拆分为枚举值测试,修改为* 14,15,16,17,18 * * *即可。
内容的提问来源于stack exchange,提问作者Anish Gowda
相关产品推荐
相关产品推荐

