在linux下使用sendmail发邮件会发现在var/spool/clientmqueue/目录下产生的大量文件了,这如果邮件发得多空间都得占满了,下面我们来介绍删除这些文件的方法.
如何删除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|xargsrm–f --phpfensi.com
如果文件太多的话,这两条命令都有可能出现参数太多的错误提示,可以采用下面的方法:
# find /var/spool/clientmqueue | xargs rm –f //这样的缺点是非常占系统资源
# rm –rf /var/spool/clientmqueue //删除完之后,再手动创建一个,并设置好属主及权限.
注意事项:我们在删除这个目录下的文件前,最好应先将sendmail停掉,否则,直接删除可能空间不能直接释放掉,需要再卸载掉/var目录对应的分区,这样就会非常麻烦了.