可通过五种方法查看crontab执行日志:一、检查系统级cron日志文件(如/var/log/cron或syslog/messages);二、使用journalctl追踪cron服务日志;三、启用rsyslog的cron模块;四、为单个条目重定向输出至独立日志;五、检查系统邮件队列获取未重定向的输出。

如果您配置了 Linux 定时任务(crontab),但无法确认其是否按预期执行或输出了哪些内容,则需通过日志机制定位实际运行情况。以下是查看 crontab 执行日志的多种方法:
一、检查系统级 cron 日志文件
Linux 中 cron 的执行记录默认由 rsyslog 或 systemd-journald 收集,不同发行版存放路径不同。启用后,日志会记录任务触发时间、用户、命令摘要等基础信息。
1、确认日志文件是否存在并可读:sudo ls -l /var/log/cron /var/log/cron.log 2>/dev/null
2、若存在 /var/log/cron,直接查看最近 20 条:sudo tail -n 20 /var/log/cron
3、若为 Debian/Ubuntu 系统且 /var/log/cron 为空,尝试从 syslog 中筛选:sudo grep -i CRON /var/log/syslog | tail -n 20
4、若为 CentOS/RHEL 系统,检查 messages 文件:sudo grep -i cron /var/log/messages | tail -n 20
二、使用 journalctl 实时追踪 cron 服务日志
systemd 系统中,cron 作为单元运行,其标准输出与事件均被 journald 捕获。该方式无需依赖 rsyslog 是否启用,适用于所有 modern Linux 发行版。
1、查看 cron 服务最近 50 条日志:sudo journalctl -u cron -n 50
2、实时监控新产生的 cron 日志条目:sudo journalctl -u cron -f
3、仅显示成功触发的任务行(排除启动/停止消息):sudo journalctl -u cron | grep "Started.*timer" -A 1 -B 1
三、启用并验证 rsyslog 的 cron 日志模块
部分最小化安装系统默认禁用 cron 日志记录。需手动激活 rsyslog 的 cron facility,并重启服务使其生效。
1、检查 rsyslog 配置中是否加载 cron 模块:grep -r "imcron\|cron\." /etc/rsyslog.conf /etc/rsyslog.d/ 2>/dev/null
2、若无有效配置,在 /etc/rsyslog.d/50-cron.conf 中添加:echo "cron.* /var/log/cron" | sudo tee /etc/rsyslog.d/50-cron.conf
3、重启 rsyslog 使配置生效:sudo systemctl restart rsyslog
4、立即创建空日志文件并设权(如不存在):sudo touch /var/log/cron && sudo chmod 644 /var/log/cron
四、为单个 crontab 条目显式重定向输出
系统日志仅记录任务调度行为,不捕获脚本内部 stdout/stderr。将输出重定向至独立日志文件是最可靠的任务级排错手段。
1、编辑当前用户 crontab:crontab -e
2、修改目标条目,在命令末尾添加重定向(示例为每 5 分钟执行):*/5 * * * * /usr/local/bin/check.sh >> /var/log/check.log 2>&1
3、确保日志路径所属用户有写权限:sudo chown $USER:$USER /var/log/check.log 2>/dev/null || true
4、立即查看最新输出:tail -n 10 /var/log/check.log
五、检查系统邮件队列获取未重定向任务输出
当 crontab 条目未做任何输出重定向时,cron 默认将 stdout 和 stderr 以本地邮件形式发送给任务所属用户。该机制长期启用但常被忽略。
1、查看当前用户是否有未读 cron 邮件:mail -H | grep -i "cron\|CRON"
2、读取最新一封 cron 邮件:mail -u $(whoami) -p 1
3、直接查看邮件文件(如 root 用户):sudo cat /var/spool/mail/$(whoami) | tail -n 30
4、若邮件为空,说明任务无输出;若含错误堆栈,可直接定位脚本失败原因。















