![两个相同的 Debian 盒子,只有一个在 /var/mail 中提供 cron 输出](https://linux22.com/image/778229/%E4%B8%A4%E4%B8%AA%E7%9B%B8%E5%90%8C%E7%9A%84%20Debian%20%E7%9B%92%E5%AD%90%EF%BC%8C%E5%8F%AA%E6%9C%89%E4%B8%80%E4%B8%AA%E5%9C%A8%20%2Fvar%2Fmail%20%E4%B8%AD%E6%8F%90%E4%BE%9B%20cron%20%E8%BE%93%E5%87%BA.png)
我有两个安装了 cron 和 postfix 的 Debian 11 盒子。两者似乎都有完全相同的配置(但可能不是),其中一个确实将 cron 输出传送到正确的 /var/mail/user 文件,而另一个似乎对输出没有任何处理。
我发现很难找到解决方案,因为大多数人似乎在向外部地址发送邮件时遇到了问题,而我只想将其发送到 /var/mail/user。
如果我运行类似的程序,两者都可以正常工作echo hi | mail user
。
我该如何调试?可能是什么原因造成的?
答案1
调试通常从检查日志开始:
cron 是否正在运行并实际执行批处理?
请检查 cron 日志。
如果没有:请参阅为什么我的 crontab 不工作?我该如何排除故障?您的批处理是否真的生成输出?因为没有 stdout,cron 不会向您发送电子邮件。检查您现有的作业(用于输出重定向),也许创建一个确实生成输出的测试作业。
cron 是否配置为禁止发送邮件?
检查 cron 配置和/或批处理规范中是否存在(空)MAILTO
变量。
检查crond 启动-m off
选项,可以使用或不正确的邮件命令禁用邮件。cron 是否配置为通过 syslog 记录而不是发送电子邮件?
检查crond 启动选项,邮件被抑制并通过 重定向到 syslog-s
。