16.04:如何让 cron 创建 cron.log 并实时监控它?

16.04:如何让 cron 创建 cron.log 并实时监控它?

我知道 cron 事件存储在中/var/log/syslog,我可以使用如下命令:

sudo cat /var/log/syslog | grep cron 

去看他们。

我更希望系统保留一个单独的 cron 日志文件,这样它就不需要花太多精力去监视它,而是对所有syslog消息进行排序以提取cron通知。

然后我想使用该watch命令,以便我总是有一个打开的终端窗口显示 cron 活动。

如何让系统保留单独的/var/log/cron.log文件?

答案1

以下是最简单的方法:

--> 使用您最喜欢的编辑器进行更改/etc/rsyslog.d/50-default.conf

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

使用Ctrl- f(查找)并键入cron以下内容:

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

从该行中删除#。然后重新启动服务:

service rsyslog restart

从那时起,所有与 cron 相关的输出都将转到/var/log/cron.log


为了防止cron发送摘要电子邮件,请将此行放在文件的开头crontab

crontab -e
(Insert first line)
MAILTO=""

然后为了近乎实时地观看它,首先创建一个wcron命令:

echo "#!/bin/bash" >wcron
echo "watch -n 10 tail -n 25 /var/log/cron.log" >>wcron
chmod +x wcron
sudo cp wcron /usr/sbin
  • watch -n 10 告诉它每 10 秒刷新一次页面
  • tail -n 25 告诉它显示最后 25 个条目

每当您想要cron在终端窗口中进行近乎实时的监控时,请输入:

wcron

在 4 个虚拟桌面中的一个中打开它很方便,也许还可以与系统监视器一起打开。


如果您想看到的不仅仅是较长作业的启动时间,可以轻松地让 cron.log 显示脚本开始时间和脚本结束时间,以及非零退出状态消息。

如何更改 cron 日志级别?

释义摘录:

从 Ubuntu 15.04 开始,暴发户使用/etc/init/*.conf被替换systemd/lib/systemd/system/使用和 中的配置文件/etc/systemd/system/。虽然 Ubuntu 16.04 中仍然存在文件/etc/init/cron.conf,但现在通常用于启动的脚本cron/lib/systemd/system/cron.service

要添加该-L 15选项,请使用以下命令打开编辑器:

sudo systemctl edit --full cron

或者我建议:

sudo gedit /lib/systemd/system/cron.service

并替换行

ExecStart=/usr/sbin/cron -f $EXTRA_OPTS

ExecStart=/usr/sbin/cron -L 15 -f $EXTRA_OPTS

然后重新加载配置:

sudo systemctl restart cron

它还会在启动时加载它。


这样可以wcron显示您需要监视 cron 系统按计划运行脚本所需的所有信息。


监控的最后一个想法cron是教你的脚本说话。

16.04 LTS 如何利用 eSpeak 让系统在整点时播报时间

我的许多脚本都会宣布它们何时启动、何时停止,或者是否遇到错误。

音量可以在命令中进行调整,espeak因此它们可以很微妙。

相关内容