温馨提示×

debian spool为什么满

小樊
47
2026-09-29 04:37:28
栏目: 智能运维

在 Debian(及大多数 Linux 发行版)里,spool(缓冲/队列目录)满了通常不是“spool 本身有问题”,而是某个服务往里面不断写东西却没人清理。下面按常见原因系统说明。


一、spool 是什么

/var/spool 用来放等待处理的任务,例如:

  • 邮件队列
  • 打印队列
  • cron 任务输出
  • 邮件用户目录(mail spool)

常见子目录:

/var/spool/mail      # 用户邮件
/var/spool/postfix   # Postfix 邮件队列
/var/spool/exim4     # Exim 邮件队列
/var/spool/cups      # 打印队列
/var/spool/cron      # cron 相关

二、最常见原因(按频率)

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

现象

  • /var/spool/postfix 或 /var/spool/exim4 很大
  • 磁盘 100%

原因

  • 外发邮件失败(DNS、 relay 拒绝)
  • 被当成垃圾邮件发送器
  • 程序不断发错误邮件

检查

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

Postfix:

postqueue -p

清理(谨慎):

postsuper -d ALL

2️⃣ 用户 mail spool 爆了

现象

  • /var/spool/mail/root 几个 G

原因

  • cron 脚本输出没重定向
  • 系统错误邮件没人看

解决

> /var/spool/mail/root

并修改 cron:

* * * * * /scripts/xx.sh >/dev/null 2>&1

3️⃣ 打印队列卡死

现象

  • /var/spool/cups 很大

原因

  • 打印机离线
  • 大文件打印失败

解决

cancel -a

或清空:

rm -rf /var/spool/cups/*

4️⃣ 日志或程序误写 spool

有些程序配置错误,把日志写到 spool。

排查

du -h /var/spool | sort -h
lsof +D /var/spool

5️⃣ inode 满(不是空间满)

df -i /var/spool

很多小文件也会导致“满了”。


三、快速定位步骤(推荐)

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

看到哪个目录大,就基本知道原因。


四、防止再满的建议

  • cron 输出必须重定向
  • 邮件服务只监听 localhost
  • 定期清理旧邮件
  • 监控磁盘:
apt install nagios-monitoring

如果你愿意,可以告诉我:

  • df -h 结果
  • du -sh /var/spool/* 结果
  • 用的是 Postfix / Exim / Sendmail?

我可以直接帮你判断是哪一个在“灌水”。

0 踩