CRONTAB服务不断发邮件问题解决
问题背景
操作系统: Linux SuSe12ps5
规格: 4C8G
现在描述: 操作系统异常卡慢,甚至无法正常登录到服务器,服务器/var/log/messages 的日志过大,撑爆了/var 目录磁盘空间。
/var/spool/postfix/maildrop
目录不存在会导致一起调起sendmail 与 postdrop 的进程,进程达到系统限制的最大进程数后,服务器就挂了。
如果此时服务器上面的crontab 任务中有报错信息,执行失败,产生的日志无法生成在 /var/spool/postfix/maildrop
目录下,这将会导致产生一些报错会打印在 /var/log/messages
的日志中。日志打印超越多,日志文件的大小就越大,最终磁盘空间被日志占满。
解决的方法:
- 首先要把服务器上面sendmail进程与postdrop 进程都杀掉,释放进程的资源。
- 其次要补充
/var/spool/postfix/maildrop
这个目录,让crontab 任务报错产生的小文件能写到这个目录下面。 - 要定时清理这个
/var/spool/postfix/maildrop
目录下面产生的小文件 - 可以关闭crontab 产生的邮件,方法后面所示。
不接受邮件的三个方法
- 配置crontab 的任务文件,在首行中配置
MAILTO=""
/etc/sysconfig/crond
配置文件中加入配置CRONDARGS= -m off #拒绝接受邮件
(没有验证过,SUSE的操作系统上没有这个文件,只有一个/etc/sysconfig/cron的文件
)- 配置crontab 的任务文件中, 直接把命令执行的结果放入到空洞中
* * * * * 执行命令或脚本 [参数] &> /dev/null
或者是* * * * * 执行命令或脚本 [参数] > /dev/null 2>&1
/etc/crontab
中的MAILTO设置成""