作为 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 帐户访问日志。
好的旧系统日志在日志日志的系统时代仍然相关。在本指南中了解使用 syslogd 进行日志记录的基础知识。
方法2:使用自定义日志文件(推荐)
使用单独的自定义文件记录 cron 作业是一种推荐的做法。
为此,您可以将“rsyslog”配置为转发 cron 日志。Rsyslog 是一个 Linux 服务,其功能类似于 Syslog 日志记录。
只需创建一个文件cron.log
目录下/var/log
:
touch /var/log/cron.log
现在打开文件/etc/rsyslog.d/50-default.conf
用于编辑:
nano /etc/rsyslog.d/50-default.conf
并定位线从 #cron.*
并删除 #
在线的开始。
要使更改工作,请保存并关闭此文件,最后重新启动 rsyslog 服务并检查其状态:
sudo systemctl restart rsyslog
sudo systemctl status rsyslog
服务状态应显示为活动(运行)。
现在,每当您需要访问 crontab 日志时,read the content of this log file只需阅读此日志文件的内容:
less /var/log/cron.log
运行最好的开源Web应用程序从$ 1 /月,完全托管,没有跟踪,没有广告,完全隐私。自我托管从来没有这么方便。
方法 3: 使用专用服务,如 Cronitor monerator cron 作业
CronitorCronitor是一种可以部署来监视任何类型的cron作业的服务。
许多 cron 版本将在计划作业执行时开始记录,或者 crontab 有任何问题。但是,cron 作业或其退出状态的输出未记录。
在这里,Cronitor派上用场,完美地工作。它是满足您所有 crontab 需求的完整解决方案。它从所有作业中捕获日志,指标和状态,start cron jobs并为崩溃或未能启动cron作业创建即时警报。
您可以通过基于Web的界面看到这一切。
对于安装在 Kubernetes 上的 Cronitor 或 CronitorCLI,单个执行可以捕获高达 100MB 的日志。在这里,您可以在 Linux for CronitorCLI 上找到详细的安装步骤。
其他 监测工具和服务 像Better Uptime一样,还提供了自动监控cron作业的功能。
Uptime(以前为Better Uptime) | Better Stack
监控从网站到服务器的所有内容。安排随叫随到的轮换,获得可操作的警报,并比以往更快地解决事件。
结论
系统日志文件对于故障排除和诊断系统相关问题非常重要,因此,cron日志也不例外。
然而,Syslog 保留与 crontab 相关的日志,建议使用 cron 专用日志文件。