1.现象
有多台服务器,只有其中一台var目录增长很快,肯定有问题
2.排查
cd /var
# 执行下面的命令迟迟得不到结果
du -sh *|grep G
# 没办法,只能一个目录一个目录的看大小
cd /var
ls
du -sh ftp
du -sh log
# 在计算spool目录大小的时候,发现卡住了,可以断定是spool目录比较大
du -sh spool
# 继续查看spool下那个目录大,计算clientmqueue是卡住了,可以断定是clientmqueue目录比较大
du -sh clientmqueue
# 查看clientmqueue里面有什么
cd /var/spool/clientmqueue
# 这个命令需要很久
ls -lrth|more
# 执行出来后,查看文件的内容
more qf33C7V1B1018339
/var/spool/clientmqueue
是放的邮件队列,这个文件下文件很多的话,一般是因为crontab里面的排程没有日志重定向,所以排程输出以邮件的形式发送到这个目录下,通过查看文件的内容,也可以验证我们的猜想
3.解决
3.1.排程输出重定向
*/5 * * * * sh /scripts/monkey.sh >> /scripts/log/monkey.log 2>&1
# 或者
*/5 * * * * sh /scripts/monkey.sh >> /dev/null 2>&1
3.2.删除其中的文件
因为clientmqueue下已经积累了大量的文件,所以直接使用rm -rf *
会报错,太多的参数。
使用ls | xargs rm -f
可以把ls的输出一个一个的传递给rm -f,就不会报错了。