温馨提示×

为何ubuntu spool满

小樊
39
2026-10-04 06:43:21
栏目: 智能运维

在 Ubuntu(以及多数 Linux 发行版)里,/var/spool 是用来存放“待处理任务”的目录,比如:

  • /var/spool/mail:用户邮件
  • /var/spool/cron / /var/spool/anacron:定时任务
  • /var/spool/cups:打印任务
  • /var/spool/postfix:邮件队列
  • /var/spool/rsyslog:日志缓冲(部分情况)

当说 “Ubuntu spool 满了”,通常是指 /var 分区或 /var/spool 占用 100%,常见原因有以下几种:


一、最常见原因

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

  • 系统或服务给用户发邮件,但邮件发不出去
  • 文件堆积在:
    /var/spool/mail/
    /var/spool/postfix/
    

✅ 检查:

du -sh /var/spool/*
mailq

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

  • 打印机离线或驱动异常
  • 打印任务不断堆积

✅ 检查:

ls -lh /var/spool/cups

✅ 清理:

cancel -a

3️⃣ cron / anacron 任务异常

  • 脚本报错但不断重试
  • 日志或输出文件无限增长

✅ 检查:

ls -lh /var/spool/cron
ls -lh /var/spool/anacron

4️⃣ 日志或缓冲文件未清理

某些服务(如 rsyslog、mail)会把临时数据放 spool


5️⃣ 磁盘本身太小(/var 单独分区)

  • /var 分区只有几 GB
  • 稍微堆积就满

二、如何快速定位是哪个 spool 占满

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

进一步:

du -sh /var/spool/*/*

三、常见清理方式(谨慎)

清理邮件队列(postfix)

postsuper -d ALL

清理用户邮件

> /var/spool/mail/username

清理 CUPS

rm -rf /var/spool/cups/*

⚠️ 不要直接 rm 整个 /var/spool,会影响系统服务


四、防止再次满的建议

  • 配置邮件能正常外发或禁用不必要邮件
  • 定期清理旧邮件
  • 监控磁盘:
    df -h
    
  • 如果 /var 太小,考虑扩容或合并分区

如果你愿意,可以把下面命令的输出贴出来,我可以帮你精确判断是哪一个 spool 满了:

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

0 踩