温馨提示×

ubuntu spool为何占用空间

小樊
35
2026-10-21 19:35:22
栏目: 云计算

在 Ubuntu(以及其它 Linux 发行版)里,spool(缓冲/队列目录)通常用于临时存放等待处理的任务或数据。当这些任务没有被及时处理或清理时,就会持续占用磁盘空间。

下面按常见原因和位置给你说明。


一、spool 是什么

/var/spool 是系统“待处理队列”目录,常见子目录包括:

  • /var/spool/cron/:cron 任务
  • /var/spool/mail/ 或 /var/spool/postfix/:邮件
  • /var/spool/cups/:打印任务
  • /var/spool/rsyslog/:日志缓冲
  • /var/spool/apt/:apt 相关临时文件
  • /var/spool/lpd/:老式打印系统

二、Ubuntu 中 spool 占用空间的常见原因

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

很多服务(cron、systemd、备份脚本)会通过 mail 发通知:

  • /var/spool/mail/root
  • /var/spool/postfix/maildrop/

如果 没有配置邮件发送,邮件会一直堆积。

检查:

du -sh /var/spool/mail/*
ls -lh /var/spool/postfix/maildrop/

2️⃣ 打印任务卡住(CUPS)

打印失败或打印机离线时:

/var/spool/cups/

清理方式:

sudo systemctl stop cups
sudo rm -rf /var/spool/cups/*
sudo systemctl start cups

3️⃣ cron 输出未处理

cron 任务有输出但没重定向:

* * * * * /script.sh

输出会被当成邮件存到 spool。

解决:

* * * * * /script.sh >/dev/null 2>&1

4️⃣ Postfix / Sendmail 队列阻塞

邮件发不出去会一直留在队列:

/var/spool/postfix/

查看队列:

mailq

清理(谨慎):

sudo postsuper -d ALL

5️⃣ apt / dpkg 临时文件

/var/spool/apt/

一般不大,但异常中断可能残留。


6️⃣ 日志或系统服务缓冲

如 rsyslog:

/var/spool/rsyslog/

三、如何快速定位是哪个 spool 占用空间

sudo du -sh /var/spool/*

再深入:

sudo du -sh /var/spool/**/*

四、安全清理建议

✅ 可以安全删的:

  • cups 打印队列
  • postfix maildrop 中未发送邮件(确认无用)
  • cron 邮件(如不需要)

❌ 不建议直接删:

  • /var/spool/cron/ 下的用户 cron 文件
  • 正在运行的服务的队列(先停服务)

五、长期防止 spool 膨胀

  • 配置邮件转发或禁用 mail
  • cron 输出重定向
  • 定期清理任务(logrotate / tmpwatch)
  • 监控 /var 使用率

如果你愿意,可以贴一下:

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

我可以帮你精确判断是哪一个在吃空间。

0 踩