天天看点

关于inodes占用100%的问题及解决方法续集如何解决clientmqueue目录文件太多

今天nagios报警,一台mfschunkserver服务器的disk满了,于是我就登录到服务器df查看了下一看根90%,使用du -sh * 或 du -sh /* 查看目录的大小(也可以用我上次解决inodes100%时查看文件过多的命令,个人建议用那个),最终查找到占用空间大的目录/var/spool/clientmqueue

<a href="http://s3.51cto.com/wyfs02/M02/23/D6/wKioL1NE6gSDo3Y0AAGbpK1sFKY827.jpg" target="_blank"></a>

然后我就想/var/spool/clientmqueue这个目录干嘛用的,纠结了半天,谷歌了下,原来/var/spool/clientmqueue是如果系统中有用户开启了cron,而cron中执行的程序有输出内容,输出内容会以邮件形式发给cron的用户,而sendmail没有启动所以就产生了这些文件。

服务器上确实有cron定时执行数十个脚本,而且都没有设置输出定向,日积月累的文件都被保存在/var/spool/clientmqueue目录下面乐 = =.

解决方法:在cron的自动执行语句后加上&gt; /dev/null 2&gt;&amp;1

例:

4 3 * * * /usr/bin/w &gt; /dev/null 2&gt;&amp;1

这样就OK拉,就不会写到那个目录下了....

在这里说一点,/var/spool/clientmqueue目录文件太多,跟上次解决inodes100%时那个文件过大似的,rm -rf *时候会提示:

“-bash: /bin/rm: Argument list too long“..

意思是参数太长,rm 干不了。

还是用上次那个命令ls | xargs -n 10 rm -f这个命令将/var/spool/clientmqueue目录下所有文件删除。这也是需要很长时间的这个命令输下去之后没有反应,有人会奇怪,咦,我这个到底是在删除呢还是没有呢。

<a href="http://s3.51cto.com/wyfs02/M01/23/D7/wKiom1NE7YCA1iPpAABZ5m-6N6Y822.jpg" target="_blank"></a>

大家可以查看下他进程是否存在,这里是存在的。那就是正在删除。

[root@nc-chunk-1a-h ~]# ps -ef | grep ls

root      3734  3506  1 14:15 pts/4    00:00:06 ls --color=tty

root      6182  3764  0 14:20 pts/5    00:00:00 grep ls

大概进行了半个小时吧,这个清理比上次inodes清理的快。

<a href="http://s3.51cto.com/wyfs02/M00/23/D7/wKioL1NE7BjjpnGwAAGOUWPwvPQ246.jpg" target="_blank"></a>

OK。清理完毕~

关于inodes占用100%的问题及解决方法地址http://sangh.blog.51cto.com/6892345/1359849

本文转自Devin 51CTO博客,原文链接:http://blog.51cto.com/devingeng/1392798