在 Debian(以及大多数 Linux 发行版)里,spool 目录满了通常是指 /var/spool 下的某个子目录占用了大量磁盘空间。spool 本身不是“一个东西”,而是多个队列/缓冲目录的集合。常见原因和排查方法如下:
| 目录 | 用途 |
|---|---|
/var/spool/mail / /var/mail |
本地用户邮件 |
/var/spool/cron |
cron 任务 |
/var/spool/cups |
打印队列 |
/var/spool/rsyslog |
日志缓冲 |
/var/spool/postfix |
Postfix 邮件队列 |
/var/spool/exim4 |
Exim 邮件队列 |
/var/spool/apt |
apt 下载缓存 |
/var/spool/lpd |
老式打印 |
本地系统用户(root、www-data、nobody 等)收到大量邮件,或邮件发送失败堆积。
du -sh /var/spool/mail/*
du -sh /var/mail/*
或:
ls -lh /var/spool/mqueue* 2>/dev/null
✅ 解决:
# 查看邮件
mail
# 清空某个用户邮箱
> /var/mail/username
常见于服务器被当成垃圾邮件中转。
mailq
postqueue -p
✅ 检查是否被滥用:
grep "relay" /var/log/mail.log
✅ 清空队列(谨慎):
postsuper -d ALL
打印机异常导致任务堆积。
lpstat -o
✅ 清空:
cancel -a
虽然 apt 主要在 /var/cache/apt,但 spool 也可能有残留。
du -sh /var/spool/apt
✅ 清理:
apt clean
apt autoclean
rsyslog 在磁盘满或异常时可能堆积。
du -sh /var/spool/rsyslog
df -h
du -sh /var/spool
du -h --max-depth=2 /var/spool | sort -hr | head
find /var/spool -type f -size +100M
✅ 案例 1
cron 任务输出未重定向,导致 /var/spool/mail/root 达到几十 GB
✅ 案例 2
Postfix 被爆破,/var/spool/postfix 塞满
✅ 案例 3
打印机卡住,/var/spool/cups 堆积
* * * * * /script.sh >/dev/null 2>&1
/var/spool 大小如果你愿意,可以直接贴出:
du -sh /var/spool/*
我可以帮你精确判断是哪一种情况,并给出最安全的清理方案。