由于centos6/7在执行cron时,会将cron执行脚本中产生的信息以邮件的形式发送cron的所有者,但是由于sendmail或postfix邮件发送未正常运行,导致邮件发送不成功,堆积在了maildrop目录下面.


存在大量crontab定时任务但脚本或命令后,没有对产生的邮件进行处理。


解决方法

<1>临时删除堆积文件


cd /var/spool/postfix/maildrop

ls | xargs rm -rf


<2>永久解决


crontab -e   //在最开始第一行中填加: MAILTO=""   ,然后重启crond服务

或者

vim /etc/crontab

将‘MAILTO=root’替换成‘MAILTO=" "

service crond restart


<3>crontab定时任务命令优化

如不需要输出的信息,将信息丢入黑洞

如需要输出信息,/dev/null换成一个其他文件名

crontab里面的命令后面加上 &>/dev/null

  • 标准输入0 从键盘获得输入 /proc/self/fd/0
  • 标准输出1 输出到屏幕(即控制台) /proc/self/fd/1
  • 错误输出2 输出到屏幕(即控制台) /proc/self/fd/2
  • /dev/null 代表linux的空设备文件,所有往这个文件里面写入的内容都会丢失,俗称“黑洞”
  • >/dev/null 意思就是把错误输出到“黑洞”
  • >/dev/null 2>&1 默认情况是1,也就是等同于 1>/dev/null 2>&1 。意思就是把标准输出重定向到“黑洞”,还把错误输出2重定向到标准输出1,也就是标准输出和错误输出都进了“黑洞”
  • 2>&1 >/dev/null 意思就是把错误输出2重定向到标准出书1,也就是屏幕,标准输出进了“黑洞”,也就是标准输出进了黑洞,错误输出打印到屏幕
  • 关于这里”&”的作用,我们可以这么理解2>/dev/null重定向到文件,那么2>&1,这里如果去掉了&就是把错误输出给了文件1了,用了&是表明1是标准输出。

————————————————

版权声明:本文为CSDN博主「漠效」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/GX_1_11_real/article/details/103490394