在 CentOS(以及其它 Linux 发行版)里,/var/spool 满掉通常不是“spool 本身有问题”,而是某个使用 spool 目录的服务在疯狂写文件或清理机制失效。下面按常见原因和系统来解释。
/var/spool 是临时排队数据目录,常见子目录包括:
/var/spool/mail:用户邮件/var/spool/postfix:Postfix 邮件队列/var/spool/clientmqueue:sendmail 队列/var/spool/cron:cron 任务/var/spool/cups:打印任务/var/spool/apt / yum:少数情况下缓存典型目录:
/var/spool/postfix/
/var/spool/clientmqueue/
/var/spool/mail/
原因:
✅ 检查:
du -sh /var/spool/*
mailq
ls -l /var/spool/clientmqueue | wc -l
场景:
* * * * * /opt/script.sh
脚本有输出 → 系统尝试发邮件 → 邮件队列爆
✅ 正确写法:
* * * * * /opt/script.sh >/dev/null 2>&1
目录:
/var/spool/cups
原因:
✅ 检查:
lpstat -o
cancel -a
某些错误配置的程序会把日志写到:
/var/spool/xxx/log
✅ 检查:
du -sh /var/spool/*
find /var/spool -type f -size +10M
有时 df -h 没满,但 df -i 满:
df -i /var
✅ 小文件极多(如 mail queue)会导致这种情况
# 看哪个目录最大
du -sh /var/spool/*
# 看文件数量
find /var/spool -type f | wc -l
# 看 inode
df -i /var
postsuper -d ALL
rm -f /var/spool/clientmqueue/*
> /var/spool/mail/root
⚠️ 不要直接 rm 正在使用的服务目录
/var/spool 大小(Zabbix / Prometheus)如果你愿意,可以贴一下:
du -sh /var/spool/*
df -h /var
我可以帮你精准判断是哪个服务导致的。