如何在 Linux 中检查 Crontab 日志

作为 Linux 用户,您可能已经熟悉 crontab。 您可以通过按预定义的计划运行命令和脚本来自动执行任务。 想要自动进​​行备份? crontab 是你的朋友。

我不会在这里讨论 crontab 的用法。 我的重点是向您展示检查 crontab 日志的不同方法。

它有助于调查您的 cronjobs 是否按计划运行。

方法 1:检查 syslog 中的 crontab 日志

根据 Linux 目录层次结构, /var/log Linux 中的目录存储来自系统、服务和正在运行的应用程序的日志。

虽然 cron 日志也在此目录中,但这些日志没有标准文件。 不同的发行版将它们保存在不同的文件中。

为了 基于 Debian 的发行版, 文件 /var/log/syslog 包含来自 cron 作业执行的日志,如果您的 cron 作业不工作,应查阅:

cat /var/log/syslog | grep -w 'cron’

运行上述命令时,您将看到终端上列出的所有 cron 作业。 grep 命令会将与 cron 相关的消息与其他消息分开。

为了 基于 RedHat 的发行版cron 日志有专门的文件 /var/log/cron.

在这两种情况下,您可能都需要指定 sudo 关键字或使用 root 帐户访问日志。

建议使用单独的自定义文件来记录 cron 作业。

为此,您可以配置“rsyslog”以转发 cron 日志。 系统日志 是一种 Linux 服务,具有类似于 Syslog 日志记录的功能。

只需创建一个文件 cron.log 目录下 /etc/rsyslog.d

touch /var/log/cron.log

现在打开文件 /etc/rsyslog.d/50-default.conf 编辑:

nano /etc/rsyslog.d/50-default.conf 

并找到以 #cron.* 并删除 # 在行的开头。

要使更改生效,请保存并 close 此文件,最后重新启动 rsyslog 服务并检查其状态:

sudo systemctl restart rsyslog
sudo systemctl status rsyslog

服务的状态应突出显示为活动(运行)。

检查 rsyslog 的状态

现在,每当您需要访问 crontab 日志时,只需阅读此日志文件的内容:

less /var/log/cron.log

方法 3:使用专用服务,如 Cronitor 监控 cron 作业

克罗尼托 是一项可以部署以监视任何类型的 cron 作业的服务。

许多 cron 版本将在计划的作业执行或 crontab 有任何问题时开始记录。 但是,不会记录 cron 作业的输出或其退出状态。

在这里,Cronitor 派上用场并且完美运行。 它是满足您所有 crontab 需求的完整解决方案。 它从所有作业中捕获日志、指标和状态,并为崩溃或无法启动作业创建即时警报。

您可以通过基于 Web 的界面查看所有这些内容。

对于安装在 Kubernetes 上的 Cronitor 或 CronitorCLI,一次执行可以捕获高达 100MB 的日志。 这里,您可以在 Linux 上找到 CronitorCLI 的详细安装步骤。

其他监控工具和服务(如 Better Uptime)也提供自动监控 cron 作业的功能。

结论

系统日志文件对于故障排除和诊断系统相关问题非常重要,因此 cron 日志也不例外。

Syslog 保留与 crontab 相关的日志,但建议使用专用的 cron 日志文件。 Cronitor、Better Uptime 和 Uptime Robot 等基于 Web 的服务也有帮助。