上一篇 下一篇 分享链接 返回 返回顶部

crontab写错导致的故障与排查

发布人:泮崵 发布时间:10小时前 阅读量:11

定时任务不执行的六个常见原因,配上排查命令与写法规范。下面按“先判断、再动手、最后验证”的顺序展开,每一步都给出可核对的检查点。

涉及 crontab、定时任务、计划任务排查 的关键动作都写成了具体命令或配置项,可以照着走,也可以当检查表用。

环境变量差异

cron 的 PATH 极简,脚本里用绝对路径或开头显式 export PATH,这是最高频的坑。

时间格式

五个字段依次是分、时、日、月、周,写错一位就变成「从不执行」或「每分钟都执行」;用 crontab.guru 核对。

日志缺失

默认不输出日志,命令后加 >> /var/log/task.log 2>&1,否则失败完全静默。

执行用户

root 的 crontab 与业务用户的 crontab 是两套,装了包却跑不起来先确认执行身份。

并发与重叠

长任务要加锁(flock),否则上一轮没跑完下一轮又起,几分钟后机器就被拖死。

速查表

环节关键动作
环境变量差异cron 的 PATH 极简,脚本里用绝对路径或开头显式 export PATH,这是最高频的坑
时间格式五个字段依次是分、时、日、月、周,写错一位就变成「从不执行」或「每分钟都执行」;用 crontab.guru 核对
日志缺失默认不输出日志,命令后加 >> /var/log/task.log 2>&1,否则失败完全静默
执行用户root 的 crontab 与业务用户的 crontab 是两套,装了包却跑不起来先确认执行身份

常见问题

Q:按文中写法改完,怎么确认真的生效?
不要只看配置文件,用对应的验证命令或从外部视角复测一次;改完先小流量观察一段,再全量推进,出问题能马上回退。

Q:按文中的步骤做完,还需要注意什么?
把处理过程和最终生效的参数记下来。同类问题再出现时直接对照记录,比重查一遍快得多。

Q:业务规模小,也要按这套标准来吗?
不需要一次到位。先把影响最大的两项做到位,剩余的随着业务增长逐步补齐,比一开始就追求完美更容易落地。

小结

回到这篇的 5 个环节:环境变量差异、时间格式、日志缺失、执行用户、并发与重叠。把这几个动作写进检查表,下次遇到同类问题按顺序过一遍,比凭经验跳步骤稳。

相关阅读:MySQL慢查询定位与索引优化、Nginx的502与504排查路径、防火墙配置:firewalld与iptables怎么选。

延伸阅读:日志切割与清理:logrotate实战、Linux常用命令速查:文件、进程、网络、systemd服务管理:从单元文件到日志。

目录结构
全文
微信公众号 微信公众号
微信客服 微信客服
电子邮箱: admin@qyun.net