linux查找maildrop目录超大空间占用

作者:matrix 发布时间:2019-09-20 分类:Linux

线上centos服务器有很长时间没有连,今天安装证书无故失败,数据库也不能连接。。。一系列的问题

查找占用情况

$ df -h #查看磁盘占用情况
$ du -h --max-depth=1 ./ #查看当前目录的文件/目录占用大小

然后就是手动一层一层的找到最大的那个目录。 😂
最后找到一个隐藏杀手:/var/spool/postfix/maildrop/。这个目录下面存在3000W个小文件,占用33GB。主要它还不是tmp之类的目录,没遇见过真是很难查找。

究其原因是crontab任务日志发送到所有者的邮箱导致的问题

解决方案

  • 方法1

编辑crontab顶部首行写上 MAILTO="",这样就会把邮箱信息赋空,也就不会发送了。

图片5030-linux查找maildrop目录超大空间占用

如果有非root用户的crontab任务也需要在顶部声明MAILTO="".
默认crontab -e是编辑的当前登录的用户定时任务配置,若是以root登录则为/var/spool/cron/root
同理www用户的定时任务文件就是/var/spool/cron/www

  • 方法2

其次就是每条cron任务的最后把输出信息赋空 >/dev/null 2>&1

* * * * * /root/do.sh >/dev/null 2>&1

p.s.

记下以后排查的顺序

  1. web程序日志
  2. nginx/apache日志
  3. tmp
  4. crontab 错误邮件发送日志
    /var/spool/postfix/maildrop
  5. /var/log 类型的log目录
    /var/log/journal 启动目录的文件很多
    ...

参考:
https://www.jianshu.com/p/a0aa43707476
https://my.oschina.net/qimhkaiyuan/blog/1631028