小编给大家分享一下linux中如何实现crontab执行结果未通过发送mail通知用户,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
创新互联是一家集网站建设,墨玉企业网站建设,墨玉品牌网站建设,网站定制,墨玉网站建设报价,网络营销,网络优化,墨玉网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。症状
在某台 centos7 主机上设置了某个 crontab 任务,但是到时间后运行 mail 后提示 No mail,即cron没有将任务的执行结果发送邮件通知到用户
排查过程
检查 crontab 日志
centos的日志由 systemd 进行管理的,因此可以通过 systemctl 来查看相关日志。
journalctl _COMM=crond --since=today
或者用root查看日志 /var/log/cron
sudo cat /var/log/cron |grep -v '/usr/local/qcloud/stargate/admin/start.sh'
最终我们在日志中会看到一行提示 Jun 22 00:50:19 localhost CROND[21181]: (lujun9972) MAIL (mailed 102 bytes of output but got status 0x004b#012)
也就是邮件发送时失败了。
检查 mail 日志
查看 /var/log/maillog 日志会发现日志中提示 Jun 22 00:50:19 localhost postfix/sendmail[21403]: fatal: parameter inet_interfaces: no local interface found for ::1
也就是说 mail 提示无法为主机上 IPV6 的地址 ::1 发现对应的网卡
解决方法
注释掉 /etc/hosts 中 ::1 对应的地址后发现mail的错误信息变成了 postfix/postdrop[5487]: warning: unable to look up public/pickup: No such file or directory
经过搜索,只需要自己创建缺失文件再重启 postfix 服务即可。
sudo mkfifo /var/spool/postfix/public/pickup sudo chown postfix:postdrop pickup systemctl restart postfix.service
以上是“linux中如何实现crontab执行结果未通过发送mail通知用户”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注创新互联行业资讯频道!