温馨提示×

Debian Spool 为何会满

小樊
37
2026-08-27 03:17:59
栏目: 智能运维

Debian 系统中 spool 目录满 一般不是“Debian 本身的问题”,而是 某个服务在往 spool 里写数据却没及时清理。常见原因和排查思路如下:


一、什么是 Debian 的 spool

/var/spool临时排队数据目录,常见子目录包括:

目录 用途
/var/spool/mail 本地用户邮件
/var/spool/cron cron 任务
/var/spool/cups 打印队列
/var/spool/postfix Postfix 邮件队列
/var/spool/exim4 Exim 邮件队列
/var/spool/rsyslog 日志缓冲(少见)

二、最常见原因(重点)

1️⃣ 邮件队列堆积(最常见)

Postfix / Exim / Sendmail 发不出去邮件

表现:

  • /var/spool/mqueue/var/spool/postfix 巨大
  • mail.log 中有大量 deferred
  • 服务器被当成垃圾邮件中转

检查:

du -sh /var/spool/*

查看邮件队列:

postqueue -p        # Postfix
exim -bp            # Exim

清理(谨慎):

postsuper -d ALL    # Postfix
exim -bp | awk '{print $3}' | xargs exim -Mrm

2️⃣ 本地用户邮件爆满

很多系统服务(cron、daemon)会把输出发邮件给 root

/var/spool/mail/root
/var/spool/mail/www-data

查看:

ls -lh /var/spool/mail/

清理:

> /var/spool/mail/root

⚠️ 建议:

  • 配置 /etc/aliases
  • 或禁止 cron 发无用邮件

3️⃣ 打印队列未清理(CUPS)

如果服务器装了打印服务:

/var/spool/cups

查看:

lpstat -o

清理:

cancel -a

4️⃣ 大量小文件(inode 满)

有时不是空间满,而是 inode 满

检查:

df -i

常见于:

  • 邮件队列
  • 日志缓冲
  • 临时任务文件

5️⃣ 程序 Bug / 日志误写

有些程序错误地把日志或缓存写进 spool

排查:

du -h --max-depth=2 /var/spool

三、快速定位命令(推荐)

df -h
df -i
du -sh /var/spool/*

四、如何避免再次发生

✅ 定期清理邮件队列
✅ 禁止服务器随意发邮件
✅ cron 输出重定向或发到真实邮箱
✅ 日志不要写进 spool
✅ 监控 /var/spool 大小(Zabbix / Prometheus)


五、如果你愿意,我可以进一步帮你

你可以直接贴出:

df -h
df -i
du -sh /var/spool/*

我可以 精确判断是哪一个 spool 在撑爆系统,并给你最安全的清理方案。

0