我有一台 Rocky 8.5 服务器。Cron 中的初始设置如下(与我们的其他服务器相同,它们可以很好地转发 cron 输出电子邮件)
HOSTNAME=xxxx
CVS_RSH=ssh
MAILTO=yyyy@zzzz
35 * * * * /usr/bin/echo "XXXXX 123 CRON REDIRECT CAPTURE" >/tmp/mycommand.log 2>&1
它运行良好,并写入日志。但我希望它发送一封带有输出的电子邮件。如果我得到直接调用 sendmail 的命令,它也能正常工作,这意味着它可以正常发送电子邮件。
42 * * * * /usr/bin/echo "XXXXX 123 CRON REDIRECT CAPTURE" | sendmail -v <my email> 2>&1
工作正常。
然而,如果我有
35 * * * * /usr/bin/echo "XXXXX 123 CRON REDIRECT CAPTURE" 2>&1
这将以写信的方式发送,/var/log/cron
而不是通过电子邮件发送。
Oct 27 16:35:01 <host> CROND[1836181]: (<user>) CMD (/usr/bin/echo "XXXXX 123 CRON REDIRECT CAPTURE" 2>&1 )
Oct 27 16:35:01 <host> CROND[1836176]: (<user>) CMDOUT (XXXXX 123 CRON REDIRECT CAPTURE)
我是否遗漏了某个步骤或其他 CRON 配置?我在手册页等中找不到任何其他提及的内容(除了它说 crond -s 将转发到系统日志)。
我可以看到 cron 正在运行
root 1296 1 0 <date> ? 00:02:35 /usr/sbin/crond -n
如果有任何区别的话,sendmail 实际上是 exim 的链接,但从控制台手动测试时似乎工作正常。
答案1
只需重新启动 cron 即可解决
service crond restart
不确定导致它出错的根本问题是什么。可能是重新启动了损坏的电子邮件设置的服务器,该设置后来已修复,但也许修复后 cron 需要重新启动?