我知道 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 显示脚本开始时间和脚本结束时间,以及非零退出状态消息。
释义摘录:
从 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
因此它们可以很微妙。