在 CentOS 中,spool 目录变大通常不是系统“自动膨胀”,而是某些服务在持续写入数据而没有及时清理。下面按常见原因 → 排查方法 → 解决建议给你一个完整说明。
CentOS 中常见的 spool 目录包括:
| 目录 | 用途 |
|---|---|
/var/spool/mail |
用户邮件(本地邮箱) |
/var/spool/cron |
cron 任务 |
/var/spool/cups |
打印队列 |
/var/spool/postfix |
Postfix 邮件队列 |
/var/spool/at |
at 任务 |
/var/spool/audit |
审计日志(较少见) |
最常见的是 /var/spool 整体变大。
du -sh /var/spool/mail/*
常见现象:
/var/spool/mail/root 5G
✅ 临时清空(不影响系统)
> /var/spool/mail/root
✅ 永久避免
crontab -e
把:
* * * * * /some/script.sh
改成:
* * * * * /some/script.sh >/dev/null 2>&1
du -sh /var/spool/postfix/*
查看队列:
postqueue -p
清理队列(谨慎):
postsuper -d ALL
du -sh /var/spool/cups
cancel -a
systemctl restart cups
du -sh /var/spool/*
再逐层查看:
du -sh /var/spool/*/*
du -sh /var/spool
du -sh /var/spool/*
find /var/spool -type f -size +100M
| 系统 | 常见 spool 问题 |
|---|---|
| CentOS 7 | cron + mail 堆积 |
| CentOS 8 | Postfix / systemd 日志 |
| Stream | 容器/日志误写 |
⚠️ 不能整个目录删除
✅ 可以安全操作:
/var/spool/mail/* 内容清空/var/spool/postfix/* 使用 postfix 命令清理/var/spool/cups/* 清空打印队列❌ 不要直接 rm -rf /var/spool
CentOS spool 变大,90% 是邮件或 cron 输出未清理造成的。
如果你愿意,可以把下面命令的输出贴出来,我可以直接帮你判断是哪一种情况:
du -sh /var/spool/*
ls -lh /var/spool/mail