Linux定时任务无日志_cron日志查看方法

8次阅读

linux 中 cron 默认不记录详细日志,需启用 rsyslog 并配置 cron.* /var/log/cron.log,重启服务后通过 logger 测试验证;注意检查 rsyslog/cron 服务状态、用户级 crontab 限制及云镜像日志屏蔽问题。

Linux 定时任务无日志_cron 日志查看方法

Linux 中 cron 默认不记录详细执行日志,需要手动开启系统级日志功能才能查看任务是否运行、何时运行、有无报错。

确认 rsyslog 服务是否启用

Ubuntu/Debian 等系统默认可能禁用 cron 日志;CentOS/RHEL 7+ 默认使用 rsyslog,但 cron 日志常被关闭。先检查 rsyslog 是否运行:

  • systemctl status rsyslog —— 确保状态为 active (running)
  • 若未启动,执行 sudo systemctl enable –now rsyslog

启用 cron 日志输出(修改 rsyslog 配置)

编辑 rsyslog 配置文件,放开 cron 日志通道:

  • 打开 /etc/rsyslog.conf/etc/rsyslog.d/50-default.conf(Ubuntu)
  • 找到类似 #cron.* 的行,去掉开头的 # 号,改为:
    cron.* /var/log/cron.log
  • 保存后重启服务:sudo systemctl restart rsyslog

验证 cron 日志是否生成

添加一个测试任务,观察日志是否写入:

  • 运行 crontab -e,添加一行:
    * * * * * logger “cron-test-$(date +%s)”
  • 等待 1 分钟,执行:
    sudo tail -n 5 /var/log/cron.log
  • 应看到类似 CRON[12345]: (user) CMD (logger “cron-test-1712345678”) 的记录

补充:排查常见无日志原因

即使配置正确仍看不到日志,可逐项检查:

  • 用户级 crontab(crontab -e)任务不会触发系统 cron 日志,除非该任务调用了系统命令或重定向了输出
  • 确保 cron 守护进程本身在运行:systemctl status cron(Debian/Ubuntu)或 systemctl status crond(RHEL/CentOS)
  • 某些云服务器镜像(如部分阿里云 / 腾讯云 Ubuntu 镜像)默认屏蔽 cron 日志,需手动开启且确认磁盘空间充足(df -h /var/log
text=ZqhQzanResources