我正在尝试添加一个用于修补的 cronjob,我只是想知道它是否成功。 我已执行以下操作:
echo "0 0 * * * root yum -d 0 -y update > /dev/null 2>&1 && shutdown -r +1" >> /etc/cron.d/patch
现在,当我转到
/var/log/cron
时,我认为所有 cron 作业都应该在那里列出。此外,我看不到任何/var/log/syslog
。我想知道我的脚本文件(在 patch
下添加为 /etc/cron.d
)是否成功,我该怎么做?
谢谢
如何检查cronjob是否成功
“对用户 crontab 的编辑和 cron 作业运行默认都会记录到 /var/log/syslog 中,这是检查事情是否未按预期运行的第一个位置。”
$ awk "/clearme/ { print $1 }" /var/log/syslog
另外,设置 shebang(第一行):
#!/bin/bash
并确保设置可执行文件的绝对路径。例如。
datetime
应设置为 /usr/bin/datetime
所以在你的情况下,命令可能是:
/usr/bin/yum -d 0 -y update > /dev/null 2>&1 && /usr/bin/shutdown -r +1" >> /etc/cron.d/patch
Cron 将任何输出邮寄到 stdout 或 stderr。要了解 cron 作业是否成功,请使输出依赖于成功:一切正常 → 无输出。有点腥→回声腥。
不要在 crontab 中编写具有此类逻辑的长命令 - 将其放入脚本中并从 cron 启动该脚本。
您可以使用
journalctl
命令并 grep 执行 cron 的相关用户名。
下面的例子
sudo journalctl | grep ec2-user
通过分析日志,您将看到执行是否成功。