Ubuntu/Debian/CentOS 中如何查看 cron 日志?
查看 cron 日志:Ubuntu/Debian 在 /var/log/syslog 中 grep CRON,CentOS 在 /var/log/cron。本文介绍各系统的查看方法及如何让 cron 日志独立存放。
Ubuntu/Debian:cron 日志混在 /var/log/syslog 里,用 grep CRON /var/log/syslog 过滤。CentOS/RHEL:独立存放在 /var/log/cron,直接查看即可。
Ubuntu / Debian
# 过滤 cron 相关记录
grep CRON /var/log/syslog
# 实时跟踪
tail -f /var/log/syslog | grep CRON
# 只看某个任务
grep "myjob.sh" /var/log/syslog
CentOS / RHEL
cat /var/log/cron
tail -f /var/log/cron
让 cron 日志独立存放(Ubuntu/Debian)
编辑 /etc/rsyslog.d/50-default.conf,取消注释:
cron.* /var/log/cron.log
重启 rsyslog 后 cron 日志单独写入 /var/log/cron.log:
sudo systemctl restart rsyslog
注意:cron 日志不包含脚本输出
这些日志只记录 cron 守护进程的事件(何时调度了哪个任务)。脚本自身的输出需要在 crontab 中重定向:
0 2 * * * /home/user/job.sh >> /var/log/myjob.log 2>&1
观测云对照
cron 日志和任务脚本输出都可以由观测云 DataKit 采集到平台统一检索;配合监控器,可以在任务报错或"该跑没跑"(日志中断)时自动告警。
常见问题(FAQ)
Q:systemd 系统的 journalctl 能看吗?
A:能:journalctl -u cron(Ubuntu)或 journalctl -u crond(CentOS)。
Q:日志里 (root) CMD (...) 是什么意思?
A:CRON 服务记录的执行事件,格式为 (用户) CMD (命令),表示某用户的 crontab 触发了一条命令。
Q:如何确认任务执行成功还是失败?
A:cron 日志只记录"执行了",不记录结果。成败要看脚本输出(重定向到文件)或退出码——可以在脚本里显式 echo 成功/失败标记。