在 Debian(及大多数 Linux 发行版)里,spool(缓冲/队列目录)满了通常不是“spool 本身有问题”,而是某个服务往里面不断写东西却没人清理。下面按常见原因系统说明。
/var/spool 用来放等待处理的任务,例如:
常见子目录:
/var/spool/mail # 用户邮件
/var/spool/postfix # Postfix 邮件队列
/var/spool/exim4 # Exim 邮件队列
/var/spool/cups # 打印队列
/var/spool/cron # cron 相关
现象
/var/spool/postfix 或 /var/spool/exim4 很大原因
检查
df -h /var/spool
du -sh /var/spool/*
Postfix:
postqueue -p
清理(谨慎):
postsuper -d ALL
现象
/var/spool/mail/root 几个 G原因
解决
> /var/spool/mail/root
并修改 cron:
* * * * * /scripts/xx.sh >/dev/null 2>&1
现象
/var/spool/cups 很大原因
解决
cancel -a
或清空:
rm -rf /var/spool/cups/*
有些程序配置错误,把日志写到 spool。
排查
du -h /var/spool | sort -h
lsof +D /var/spool
df -i /var/spool
很多小文件也会导致“满了”。
df -h
du -sh /var/spool/*
du -sh /var/spool/*/*
看到哪个目录大,就基本知道原因。
apt install nagios-monitoring
如果你愿意,可以告诉我:
df -h 结果du -sh /var/spool/* 结果我可以直接帮你判断是哪一个在“灌水”。