centos-rhel服务器相关 / 未分类 · 2012年3月23日

cron的程序有输出内容造成的/var/spool/clientmqueue/目录下存在大量文件

问题现象:
linux操作系统中的/var/spool/clientmqueue/目录下存在大量文件。
原因分析:系统中有用户开启了cron,而cron中执行的程序有输出内容,输出内容会以邮件形式发给cron的用户,而sendmail没有启动所以就产生了这些文件;
解决办法: 1、 将crontab里面的命令后面加上> /dev/null 2>&1
2、知识点:
2>:重定向错误。
2>&1:把错误重定向到输出要送到的地方。即把上述命令的执行结果重定向到/dev/null,即抛弃,同时,把产生的错误也抛弃。
3、具体代码:
crontab -e
*/2 * * * * //scripts/update > /dev/null 2>&1
4、清除/var/spool/clientmqueue/目录下的文件:
# cd /var/spool/clientmqueue
# rm -rf *
如果文件太多,占用空间太大,用上面命令删除慢的话,就执行下面的命令:
/usr/bin/find /var/spool/clientmqueue/ -type f -exec rm {} ;
# cd /var/spool/clientmqueue
# ls | xargs rm -f
#ls *.log |xargs rm -f
#如果出现-bash: /bin/ls: Argument list too long,就用下面这个吧
ls |xargs rm -fr
或者定期删除clientmqueue目录下的邮件,如下:
#for rm /var/spool/clientmqueue/*
00 03 * * * ls /var/spool/clientmqueue | xargs rm -f > /dev/null 2>&1
http://blog.csdn.net/wyzxg/article/details/7513810