记一次排程未重定向导致var目录不足的分析与处理

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,就不会报错了。

posted @ 2023-04-12 16:38  monkey6  阅读(22)  评论(0编辑  收藏  举报