遇到了两个问题
/var/spool/postfix/maildrop
产生大量文件- 目录中文件过多导致ls命令卡住
前因
收到服务器报警邮件,磁盘使用率超过百分之97,遂上线检查清理
检查目录占用情况
笨办法,du -sh *
查看目录/文件大小,发现卡在var
目录下,进入目录继续测试,发现最终卡在/var/spool/postfix/maildrop
下,进入目录,ls 发现ls卡死,需要kil 才能恢复,ls -l |wc -l
同样结果,遂开始研究问题。
问题1. /var/spool/postfix/maildrop
产生大量文件
crontab 每次执行任务后会发送邮件,接受者是在他的配置文件 “/etc/crontab” 通过 MAILTO=root’ 来设置的,默认是root。发送后的邮件就到/var/spool/postfix/maildrop
下了。
如果需要邮件发送到指定邮箱,则需要配置此处。
继续检查发现发现服务器上有很多crontab任务,因而判断发送太多邮件到maildrop下导致文件超多。
解决方案
方案1
修改“/etc/crontab”
将‘MAILTO=root’替换成‘MAILTO=""’修改之后没有成功,需要重启crond服务才可以
也可从在crontab(crontab -e)中最前面直接加入MAILTO=""
方案2
如果是我们不关心的备注型等输出我们完全可以让其输出到 /dev/null
这样就不会因为发送失败到导致在/var/spool/postfix/maildrop
下面产出什么文件。
如果需要收集输出log,可在crontab job
后增加>
定向输出
例如:
# 输出空
*/10 * * * * /tmp/test.sh >/dev/null 2>&1
# 定向输出到文件
*/10 * * * * /tmp/test.sh >/log/test.log 2>&1
结果
使用方案1
后重启crond服务,则不会产生新的文件。
问题2. 目录中文件过多导致ls命令卡住
解决方案
如果需要立马显示文件内容,则使用
ls -1 -f
# 删除文件
ls -1 -f | xargs rm
即可立马显示文件。
问题原因
(https://www.jianshu.com/p/353a5dbcd423)[https://www.jianshu.com/p/353a5dbcd423]