Debian 系统中的 spool 目录(通常是 /var/spool)主要用于存放临时排队数据,比如打印任务、邮件队列、定时任务输出等。当 spool 目录“满了”,一般不是指它本身有固定容量,而是占满了所在分区的磁盘空间。
下面从常见原因、排查方法、解决办法三个方面说明。
目录:
/var/spool/cups
/var/spool/lpd
原因:
结果:
.job、.data 文件堆积目录:
/var/spool/mail
/var/spool/postfix
/var/spool/exim4
原因:
目录:
/var/spool/cron
/var/spool/anacron
原因:
目录:
/var/spool/apt
原因:
有时程序配置错误,把日志或缓存写进 spool。
df -h
如果 /var 或 / 使用率 100%,继续排查。
du -sh /var/spool/*
或:
du -h --max-depth=2 /var/spool
ls -lh /var/spool/cups
ls -lh /var/spool/mail
sudo systemctl stop cups
sudo rm -rf /var/spool/cups/*
sudo systemctl start cups
或:
sudo cancel -a
Postfix:
sudo postsuper -d ALL
Exim:
sudo exim -bp
sudo exim -Mrm <message-id>
检查:
crontab -l
避免:
* * * * * some_command
应改为:
* * * * * some_command >/dev/null 2>&1
find /var/spool -type f -size +100M
ncdu、Prometheus、Zabbix)Debian spool 满,本质是
/var/spool中的临时队列数据(打印、邮件、cron 等)无限堆积,占满了磁盘。
如果你愿意,可以贴出:
df -h
du -sh /var/spool/*
我可以帮你精确判断是哪一种 spool 在“吃磁盘”。