![Cron 在哪里寻找默认的邮件二进制文件?](https://linux22.com/image/38297/Cron%20%E5%9C%A8%E5%93%AA%E9%87%8C%E5%AF%BB%E6%89%BE%E9%BB%98%E8%AE%A4%E7%9A%84%E9%82%AE%E4%BB%B6%E4%BA%8C%E8%BF%9B%E5%88%B6%E6%96%87%E4%BB%B6%EF%BC%9F.png)
我已将 Cron 作业设置为在 Chroot 环境中运行,具体取决于用户/组;
我注意到这些在 chroot 环境中运行的 cron 作业无法发送任何邮件。
日志文件报告找不到发送邮件的程序。
Cron 进程在哪里查找默认邮件二进制文件?您可以设置或配置该路径吗?
顺便说一句..如果未设置 MAILTO= 变量,Cron 如何知道将邮件发送到哪里?它只是向本地主机上运行作业的用户发送邮件吗?
谢谢!
答案1
Cron 进程在哪里查找默认邮件二进制文件?
除非另有说明,我相当确定它只是使用在路径(/bin:/usr/bin)中找到的邮件程序。您可以-m
为某些版本的 cron 指定命令行参数
-m 此选项允许您指定用于发送 cron 邮件输出而不是 sendmail(8) 的 shell 命令字符串。该命令必须在标准输入上接受完全格式化的邮件消息(带有标头),并将其作为邮件消息发送给邮件标头中指定的收件人。
以上适用于 CentOS/RHEL,Ubuntu 看起来不同
您可以设置或配置该路径吗?
往上看。
如果未设置 MAILTO= 变量...
如果未设置 MAILTO,则您怀疑邮件将传递给正在运行作业的本地用户。
在 CentOS/RHEL 上,您可以在 /etc/sysconfig/crond 中指定额外的命令行参数,这样您就不必编辑初始化脚本。其他操作系统/发行版可能提供类似的功能。