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

SDs*_*lar 4 cron log syslog 16.04

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

sudo cat /var/log/syslog | grep cron 
Run Code Online (Sandbox Code Playgroud)

去看他们。

我宁愿让系统保留一个单独的 cron 日志文件,这样它就不会做太多的工作来观察它,因为它syslog会对所有消息进行排序以提取cron通知。

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

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

SDs*_*lar 11

这是最简单的方法:

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

sudo gedit /etc/rsyslog.d/50-default.conf
Run Code Online (Sandbox Code Playgroud)

使用Ctrl- f(查找)并键入cron以查找显示的行

#cron.*         /var/log/cron.log
Run Code Online (Sandbox Code Playgroud)

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

service rsyslog restart
Run Code Online (Sandbox Code Playgroud)

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


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

crontab -e
(Insert first line)
MAILTO=""
Run Code Online (Sandbox Code Playgroud)

然后要近乎实时地观看它,首先创建一个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
Run Code Online (Sandbox Code Playgroud)
  • watch -n 10 告诉它每 10 秒刷新一次页面
  • tail -n 25 告诉它显示最后 25 个条目

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

wcron
Run Code Online (Sandbox Code Playgroud)

这对于在 4 个虚拟桌面之一中打开非常方便,可能与系统监视器一起打开。


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

如何更改 cron 日志级别?

释义摘录:

从在Ubuntu 15.04,新贵使用/etc/init/*.conf被替换systemd使用配置文件中/lib/systemd/system//etc/systemd/system/。尽管/etc/init/cron.confUbuntu 16.04 中仍然存在一个文件,但cron 现在通常用于启动的脚本是/lib/systemd/system/cron.service.

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

sudo systemctl edit --full cron
Run Code Online (Sandbox Code Playgroud)

或者我建议:

sudo gedit /lib/systemd/system/cron.service
Run Code Online (Sandbox Code Playgroud)

并更换线

ExecStart=/usr/sbin/cron -f $EXTRA_OPTS
Run Code Online (Sandbox Code Playgroud)

ExecStart=/usr/sbin/cron -L 15 -f $EXTRA_OPTS
Run Code Online (Sandbox Code Playgroud)

然后重新加载配置:

sudo systemctl restart cron
Run Code Online (Sandbox Code Playgroud)

它也会在启动时加载它。


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


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

16.04 LTS 如何让系统用eSpeak在最小时报时间

我的许多脚本会在开始和停止时发出通知,或者在遇到错误时进行通知。

可以在espeak命令中调整音量,因此它们可以是微妙的。