在 Ubuntu(以及绝大多数 Linux 系统)里,spool 满了通常指的是 /var/spool 目录占满磁盘空间,常见表现有:
No space left on device下面按常见原因 → 位置 → 解决办法来说明。
很多服务器程序(cron、系统服务)会通过邮件通知,但没人收,就会堆积。
常见位置:
/var/spool/mail/
/var/spool/postfix/
检查:
du -sh /var/spool/mail/*
解决:
# 清空某个用户的邮件
> /var/spool/mail/username
# 或删除 postfix 队列
postsuper -d ALL
打印任务失败、卡死会导致 spool 爆满。
位置:
/var/spool/cups/
解决:
sudo service cups stop
sudo rm -rf /var/spool/cups/*
sudo service cups start
如果大量 cron 任务创建但没清理,也可能占空间。
位置:
/var/spool/cron/
/var/spool/at/
检查:
ls -lh /var/spool/cron/
例如:
anacronmailmaneximrsyslogdf -h
sudo du -sh /var/spool/*
sudo du -sh /var/spool/mail/*
sudo du -sh /var/spool/postfix/*
在 crontab 里加:
MAILTO=""
或重定向:
* * * * * /script.sh >/dev/null 2>&1
sudo apt install logrotate
# 每周清理 mail spool
0 3 * * 0 find /var/spool/mail -type f -size 0 -delete
Ubuntu 的 spool 满了,99% 是邮件或打印队列没清理,尤其是 cron 邮件堆积。
如果你愿意,可以把下面命令的输出贴出来,我可以帮你精确定位是哪一类 spool 满了:
df -h
sudo du -sh /var/spool/*