在 Ubuntu(以及其它 Linux 发行版)里,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/:老式打印系统很多服务(cron、systemd、备份脚本)会通过 mail 发通知:
/var/spool/mail/root/var/spool/postfix/maildrop/如果 没有配置邮件发送,邮件会一直堆积。
检查:
du -sh /var/spool/mail/*
ls -lh /var/spool/postfix/maildrop/
打印失败或打印机离线时:
/var/spool/cups/
清理方式:
sudo systemctl stop cups
sudo rm -rf /var/spool/cups/*
sudo systemctl start cups
cron 任务有输出但没重定向:
* * * * * /script.sh
输出会被当成邮件存到 spool。
解决:
* * * * * /script.sh >/dev/null 2>&1
邮件发不出去会一直留在队列:
/var/spool/postfix/
查看队列:
mailq
清理(谨慎):
sudo postsuper -d ALL
/var/spool/apt/
一般不大,但异常中断可能残留。
如 rsyslog:
/var/spool/rsyslog/
sudo du -sh /var/spool/*
再深入:
sudo du -sh /var/spool/**/*
✅ 可以安全删的:
❌ 不建议直接删:
/var/spool/cron/ 下的用户 cron 文件/var 使用率如果你愿意,可以贴一下:
df -h
du -sh /var/spool/*
我可以帮你精确判断是哪一个在吃空间。