温馨提示×

linux cron日志如何开启

小樊
35
2026-10-14 06:16:02
栏目: 智能运维

在 Linux 中,cron 日志是否记录、记录到哪里,取决于你使用的 cron 实现和系统日志服务(rsyslog / syslog / systemd-journald)。下面按常见场景说明如何“开启 cron 日志”。


一、Debian / Ubuntu(最常见)

1. 修改 rsyslog 配置

编辑:

sudo vim /etc/rsyslog.d/50-default.conf

找到这一行(通常是被注释的):

# cron.*                          /var/log/cron.log

去掉注释:

cron.*                          /var/log/cron.log

2. 重启 rsyslog

sudo systemctl restart rsyslog

3. 确认 cron 服务在运行

sudo systemctl status cron

4. 查看日志

tail -f /var/log/cron.log

二、CentOS / RHEL 7+

方法一:使用 rsyslog(推荐)

编辑:

sudo vim /etc/rsyslog.conf

确保有这一行(通常已存在):

cron.*                                                  /var/log/cron

重启 rsyslog:

sudo systemctl restart rsyslog

查看:

tail -f /var/log/cron

方法二:使用 journalctl(systemd)

CentOS 7+ 的 cron 通常由 systemd 管理:

sudo journalctl -u crond -f

三、使用 systemd 的发行版(无 /var/log/cron)

如果系统是 纯 systemd(如某些容器或新版发行版):

journalctl -u cron -f
# 或
journalctl -u crond -f

四、常见排错

1. cron 日志为空

  • 确认 cron 任务是否真的执行
  • 确认 rsyslog / syslog 服务在运行
  • 确认没有 # 注释

2. 想记录更详细

在 crontab 中重定向输出:

* * * * * /脚本.sh >> /var/log/mycron.log 2>&1

3. 容器环境

容器通常没有 rsyslog:

journalctl -u cron

或直接看 stdout:

docker logs 容器名

五、一句话总结

  • Ubuntu:取消 /etc/rsyslog.d/50-default.conf 中 cron.* 注释
  • CentOS:确认 /etc/rsyslog.conf 中 cron.* /var/log/cron
  • systemd:journalctl -u cron

如果你告诉我具体发行版 + 版本,我可以给你精确命令。

0 踩