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

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

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

解决方法:在cron的自动执行语句后加上> /dev/null 2>&1
例:
4 3 * * * /usr/bin/w > /dev/null 2>&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目录下所有文件删除。这也是需要很长时间的这个命令输下去之后没有反应,有人会奇怪,咦,我这个到底是在删除呢还是没有呢。

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

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

[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清理的快。

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

OK。清理完毕~

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