crontab执行之后发送邮件给root

今天突然发现我一台邮件服务器,邮件队列中一大堆没有发送成功的邮件记录,而且都是发给root的,情况如下:
[root@mailx1 chris]# mailq
-Queue ID- --Size-- ----Arrival Time---- -Sender/Recipient-------
EA491204C0 667 Thu Jun 15 06:00:01 root@tsxmail.com
(connect to tsxmail.com[180.150.178.135]:25: Connection timed out)
root@tsxmail.com

E1CD12004C 634 Thu Jun 15 06:00:01 root@tsxmail.com
(connect to tsxmail.com[180.150.178.135]:25: Connection timed out)
root@tsxmail.com

D3B0B2066D 622 Thu Jun 15 06:00:01 root@tsxmail.com
(connect to tsxmail.com[180.150.178.135]:25: Connection timed out)
root@tsxmail.com

-- 2 Kbytes in 3 Requests.
请问这种情况怎么破,怎么设置让他不发送通知邮件?
已邀请:

采菊篱下 - 无分享不快乐 助力技术开源分享 运维一枚

赞同来自: chris

这种问题是因为用crontab建立了自动执行计划,可是每当执行后,都会给root发邮件,因为root帐号不存在,造成很多postfix错误日志。
 
解决方法有如下几种:
1、添加MAILTO为空
crontab -e
在第一行加入:
MAILTO=""
 
这样所有的发送都会是空的,接收人是空的。
 
2、在你每个添加的crontab 记录 后面添加 >/dev/null 2>&1
这样,会把输出信息放到系统的黑洞设备 /dev/null  也就是丢弃掉输出信息,这样也不会发邮件给你了。
 
如果想指定特定记录发送,可以如下做:
* * * * * MAILTO="box@xxxmail.com"  /bin/bash /opt/bin/check_mysql.sh >> /opt/mysql/crontab.log

要回复问题请先登录注册