Ubuntu/Debian/CentOS 中如何查看 cron 日志?

查看 cron 日志:常见配置下 Ubuntu/Debian 在 /var/log/syslog 中 grep CRON,CentOS 在 /var/log/cron;实际以日志路由为准。本文介绍各系统的查看方法及如何让 cron 日志独立存放。

最佳实践
Ubuntu/Debian/CentOS 中如何查看 cron 日志?封面

常见 rsyslog 配置中,Ubuntu/Debian 的 cron 记录可在 /var/log/syslog,CentOS/RHEL 常用 /var/log/cron;实际位置由日志服务和路由配置决定,也可能只在 journal 中。

Ubuntu / Debian

# 过滤 cron 相关记录
grep CRON /var/log/syslog

# 实时跟踪
tail -f /var/log/syslog | grep --line-buffered 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 >> /home/user/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:常见的 CMD 行只说明任务已触发;是否有结束或退出状态记录取决于 cron 实现和配置,不能统一认定没有。成败要看脚本输出(重定向到文件)或退出码——可以在脚本里显式 echo 成功/失败标记。

获取专属方案

联系我们

加入社区

微信扫码
加入官方交流群

立即体验

在线开通,按量计费,真正的云服务!

立即开始

选择观测云版本

代码托管平台