Ubuntu Spool 故障诊断技巧
一 快速定位问题范围
df -h、df -i;定位大目录:du -sh /var/spool/* | sort -hr | head。sudo systemctl status cups;邮件 sudo systemctl status postfix 或 sudo systemctl status sendmail。sudo tail -f /var/log/cups/error_log;邮件 sudo tail -f /var/log/mail.log。lpstat -p -d;邮件 mailq 或 postqueue -p。lpinfo -v;网络打印可结合 ping/nc 测试到打印机的 9100 端口。二 打印 Spool 诊断与修复(CUPS)
sudo systemctl restart cups && sudo systemctl enable cups。lpinfo -v;必要时重装驱动或添加厂商 PPD。lpstat -p -d;取消卡住作业:cancel <job-id> 或 lprm <job-id>。sudo tail -f /var/log/cups/error_log,关注 “job stopped”, “unable to open spool file”, “permission denied”, “No space left on device” 等关键词。sudo chown -R root:lp /var/spool/cups && sudo chmod 755 /var/spool/cups。sudo systemctl stop cups && sudo rm -rf /var/spool/cups/* && sudo systemctl start cups(谨慎操作,确保无正在打印的重要任务)。sudo cp /etc/cups/cupsd.conf /etc/cups/cupsd.conf.bak && sudo cp /usr/share/cups/cupsd.conf.default /etc/cups/cupsd.conf && sudo systemctl restart cups。sudo apt remove --purge cups && sudo apt autoremove && sudo apt install cups,随后重新添加打印机。sudo apt update && sudo apt upgrade;确认防火墙未阻断打印端口(如 9100/tcp)。三 邮件与定时任务 Spool 诊断(MTA 与 Cron)
cd /var/spool/clientmqueue && ls | xargs rm -ffind . -type f -delete(按批次执行更稳)。17 * * * * root cd / && run-parts --report /etc/cron.hourly >/dev/null 2>&1>/dev/null 2>&1 将标准输出与错误输出全部丢弃;如需保留日志,改为 >> /var/log/cron.log 2>&1。sudo systemctl status postfix 或 sudo systemctl status sendmail;查看队列:mailq 或 postqueue -p;查看日志:sudo tail -f /var/log/mail.log。四 通用排障清单与预防
df -h、df -i),设置告警;对日志与队列启用 logrotate 与定期清理策略,避免无限增长。cups、postfix),清理后重启;操作前备份关键配置与目录。