Cron Job(定时任务)执行失败是服务器运维中非常常见的问题。要定位原因,通常可以从日志、环境变量、路径、权限几个维度排查。下面我按“最常见原因 → 排查方法”给你一个系统性的总结。
Cron 的执行环境与交互式 Shell 不同:
PATH.bashrc / .profile典型表现
command not found
解决方式
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
/usr/bin/python3 /home/user/script.py
Cron 的工作目录默认是用户家目录,不是脚本所在目录。
错误示例
* * * * * python script.py
如果 script.py 不在家目录,就会失败。
✅ 正确写法:
* * * * * cd /home/user/project && python script.py
检查
ls -l script.sh
chmod +x script.sh
Cron 会把输出通过 mail 发给用户,但很多服务器没配置 mail。
✅ 建议:
* * * * * /path/script.sh >> /var/log/script.log 2>&1
systemctl status cron
# 或
service cron status
未运行则:
systemctl start cron
systemctl enable cron
* * * * * command
分 时 日 月 周
常见错误:
@every_minute)通常是:
✅ 可在脚本开头加:
#!/bin/bash
source ~/.bashrc
# Ubuntu / Debian
grep CRON /var/log/syslog
# CentOS / RHEL
grep CRON /var/log/cron
env -i /bin/bash --noprofile --norc
* * * * * echo "cron ok" >> /tmp/cron_test.log
你可以直接贴出:
我可以帮你精准定位是哪一类问题。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。