温馨提示×

ubuntu spool为何生成快

小樊
40
2026-10-21 19:38:22
栏目: 智能运维

在 Ubuntu(以及大多数 Linux 系统)里,spool 目录生成/增长很快,通常不是“凭空生成”,而是有进程在持续往里面写数据。下面按常见原因给你梳理一下。


一、spool 是什么

/var/spool 是 假脱机(spool)目录,用来临时存放:

  • 打印任务(CUPS)
  • 邮件(Postfix / Sendmail / Exim)
  • cron 任务输出
  • 其他队列数据

常见子目录:

/var/spool/cups
/var/spool/mail
/var/spool/cron
/var/spool/rsyslog

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

1️⃣ 打印服务(CUPS)疯狂生成任务

目录:

/var/spool/cups/
/var/spool/cups/tmp/

原因:

  • 打印机不可用但程序不断提交打印
  • 网络打印机掉线
  • 应用程序死循环打印

表现:

  • cups 目录几秒一个文件
  • 磁盘占用迅速上涨

排查:

ls -lh /var/spool/cups
systemctl status cups

2️⃣ 邮件队列堆积(Postfix / Sendmail)

目录:

/var/spool/mail/
/var/spool/postfix/

原因:

  • 程序发邮件失败但不断重试
  • cron 任务输出未重定向
  • 系统用户(www-data、root)收到大量邮件

表现:

  • /var/spool/mail/root 越来越大
  • postfix 队列持续增长

排查:

mailq
ls -lh /var/spool/mail

3️⃣ cron 输出未处理

目录:

/var/spool/cron/
/var/spool/mail/

原因:

  • cron 脚本有输出
  • 未加 > /dev/null 2>&1

结果:

  • 输出变成 mail
  • mail 存进 spool

示例问题脚本:

* * * * * /usr/local/bin/foo.sh

4️⃣ 日志 / rsyslog 写入 spool

目录:

/var/spool/rsyslog

原因:

  • rsyslog 使用 spool 做可靠队列
  • 日志量极大

5️⃣ 程序 bug / 恶意程序

  • 异常服务不断写文件
  • 被入侵后写入队列

排查:

du -sh /var/spool/*
lsof +D /var/spool

三、快速定位方法(推荐)

1️⃣ 看哪个目录在涨

watch -n 1 du -sh /var/spool/*

2️⃣ 看谁在写

lsof +D /var/spool

3️⃣ 看最近修改

find /var/spool -type f -mmin -5

四、常见解决方向

  • 停掉无用的打印服务:systemctl disable --now cups
  • cron 输出重定向
  • 清理邮件队列:postsuper -d ALL
  • 限制 spool 大小(logrotate / quota)

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

  • 具体是 /var/spool 下 哪个子目录 增长快
  • 是否服务器 / 桌面
  • 是否有打印机或邮件服务

我可以直接帮你精确定位并给处理命令。

0 踩