【Linux】 Solution: Delete Many Useless files in /var/spool/postfix/maildrop

admin / Linux / / 414 字 · 约 2 分钟 / 542 次阅读 /

一、问题背景

在日常运维排查中,常发现 /var/spool/postfix/maildrop 目录下堆积了数以万计的小文件,耗尽磁盘 inode 或导致空间预警。

原因解析
Linux 执行 cron 定时任务时,默认会将脚本的输出(stdout)及告警(stderr)以邮件形式发送给任务属主。若服务器未配置或关闭了 postfix/sendmail 邮件服务,投递失败的邮件就会全部滞留在 maildrop 目录中。

二、根治配置方案

方案 1:全局禁用 Cron 邮件投递

编辑 /etc/crontab

sudo vim /etc/crontab

将默认的:

MAILTO=root

修改为关闭投递:

MAILTO=""

保存后重启 cron 守护进程:

sudo systemctl restart crond

方案 2:在用户任务列表头部声明

在用户 crontab(crontab -e)的最顶行加入:

MAILTO=""

三、清理历史堆积小文件

由于堆积小文件数量过多时,直接执行 rm -rf * 会报 Argument list too long(参数列表过长),推荐使用以下方式安全清空:

cd /var/spool/postfix/maildrop
ls | xargs -n 1000 rm -f
admin

admin

云原生架构 · 全栈开发

感谢阅读本文!记录系统架构思考与实战复盘。专注于 Python、Django、PostgreSQL 与云原生容器化工程实践。