在 CentOS 系统中,spool(缓冲/暂存目录)满仓(磁盘空间占满)是非常常见的问题。下面从是什么、常见原因、排查方式、解决办法、预防建议几个方面说明。
/var/spool 用于存放等待处理的临时数据,常见子目录包括:
/var/spool/mail:用户邮件/var/spool/postfix:Postfix 邮件队列/var/spool/cron:cron 任务/var/spool/cups:打印队列/var/spool/audit:审计日志(某些情况)/var/spool/clientmqueue:sendmail 邮件队列(老系统)一旦这些目录堆积过多文件,就会导致磁盘 100%。
/var/spool/clientmqueue
/var/spool/postfix/maildrop
/var/spool/mail
✅ 典型现象:
sendmail: deferred/var/spool/mail/root
可能达到几十 GB/var/spool/cups
df -h 没满,但 df -i 满了df -h
df -i
du -sh /var/spool/*
for d in /var/spool/*; do
echo "$d: $(find $d | wc -l)"
done
# Postfix
postqueue -p
postsuper -d ALL
# sendmail
sendmail -q
rm -f /var/spool/clientmqueue/*
⚠️ 删除前确认不是重要邮件
> /var/spool/mail/root
在 cron 中加重定向:
* * * * * /script.sh >/dev/null 2>&1
或禁用邮件:
MAILTO=""
cancel -a
rm -rf /var/spool/cups/*
✅ 建议做法:
logrotate + tmpwatch
df -h
mailq
你可以贴出:
df -h
du -sh /var/spool/*
我可以帮你精准判断是哪一个 spool 目录导致满仓,并给出安全清理命令。