我一直在运行许多 cron 作业(在各种操作系统上,例如 CentOS),这些作业通常运行时没有输出。我通常通过查看电子邮件来关注我的作业。我利用任何错误都会生成输出这一事实作为一种简单的监控机制,因为任何输出都会显示为电子邮件。没有电子邮件意味着一切都按预期运行。
在安装了 Rocky Linux 9 的新机器后,我的 cron 作业运行,但错误不会生成任何电子邮件。例如,如果我的 crontab 如下所示:
* * * * * date >> /tmp/cron.out && echo 'This is cron'
我应该每分钟将日期附加到 /tmp/cron.out 文件并发送一封电子邮件说“这是 cron”。
/tmp/cron.out 文件每分钟都会不断添加日期,所以我知道作业正在运行,但是 /var/spool/mail 中的所有文件都为零字节,因此没有生成电子邮件。
cron 的所有文档都表明任何作业输出都会生成一封电子邮件。但现在我无法判断我的作业是否抛出了任何错误。
Rocky Linux 9 中有什么变化,导致作业输出不再发送到电子邮件?我可以做些什么来恢复原来的功能?
谢谢你的帮助。
答案1
这是一台新机器,因此可能尚未完全配置必要的服务。
具体来说,邮件服务可能已关闭或未在新机器上配置。
安装并启动 Postfix ,并重新启动 Crond ,已解决此处的问题。
[[ 为什么在安装并启动 Postfix 后需要重新启动 Crond:也许 Crond 检查了邮件服务器,发现它没有运行,因此跳过了邮件发送。重新启动 Crond 后,它检查了邮件服务器,发现它正在运行,因此开始发送邮件! ]]