如何删除sendmail 在var/spool/clientmqueue/目录下产生的大量文件
时间:2013-09-23 12:09:55 作者:vaster 标签: Linux 分类: Linux Linux基础
如何删除sendmail 在var/spool/clientmqueue/目录下产生的大量文件
故障现象: 今天早上一过来,运维同学就告诉我,TW_LDJ项目机器的/var分区已经使用超过85%
原因分析: 为什么这个目录会这么大呢?这要从/var/spool/clientmqueue/这个目录的作用谈起。当你使用简单的sendmail发邮件的时候, 或者系统默认要发一些邮件(比如cron发的邮件)的时候,首先会把邮件拷贝到这个目录里,然后等待MTA(mail transfer agent) 来处理,MTA做的事情通常是把这个目录中的邮件弄到/var/spool/mqueue里,然后再发送到真正的目的地。出现/var/spool /clientmqueue/非常大的情况通常因为没有合适的MTA发送邮件,就都积累在这里了,假如这里的邮件并不是你需要的,比如是系统默认发的每分 钟跑一次的什么什么cron的信,你可以简单的删掉他们。
解决办法: 1、 将crontab里面的命令后面加上> /dev/null 2>&1 2、清除/var/spool/clientmqueue/目录下的文件:
cd /var/spool/clientmqueue
rm -rf * 或 ls | xargs rm –f
如果文件太多的话,这两条命令都有可能出现参数太多的错误提示,可以采用下面的方法:
find /var/spool/clientmqueue | xargs rm –f //这样的缺点是非常占系统资源
rm –rf /var/spool/clientmqueue //删除完之后,再手动创建一个,并设置好属主及权限
注意事项:
我们在删除这个目录下的文件前,最好应先将sendmail停掉,否则,直接删除可能空间不能直接释放掉,需要再卸载掉/var目录对应的分区,这样就会非常麻烦了。