CentOS Spool 故障诊断步骤
一 快速定位范围
systemctl status cupsd、systemctl status postfix,以及 journalctl -xe -u cupsd 或 journalctl -xe -u postfix。df -h、df -i,确认 /var 或 /var/spool 所在分区未满或 inode 未耗尽。二 邮件队列类 Spool 排查
systemctl status postfix 或 systemctl status sendmail;journalctl -xe -u postfix。queue_directory = /var/spool/postfix;Sendmail 检查 /etc/mail/sendmail.cf 中相关目录配置。chcon -R system_u:object_r:spool_t:s0 /var/spool。mailq 或 postqueue -p;积压严重时先定位原因再清理。postsuper -d ALL(清空队列,仅在确认可丢弃时执行)。find /var/spool/ -type f -size +50M -exec ls -lh {} \;,释放空间后再恢复服务。mailq 应回落,日志无新报错。三 打印队列类 Spool 排查
systemctl status cupsd、journalctl -xe -u cupsd;必要时查看 /var/log/cups/error_log。systemctl list-dependencies cupsd;确认网络、权限、磁盘空间均正常。systemctl restart cupsd 后,Web 管理界面(如 http://localhost:631)或 lpstat -r 应显示调度器已运行。四 通用检查与修复
chown -R root:root /var/spool、chmod -R 755 /var/spool;ls -Z /var/spool,必要时 chcon -R system_u:object_r:spool_t:s0 /var/spool;策略异常时用 restorecon -R /var/spool。top、free -m 检查内存/CPU;df -h、df -i 检查磁盘与 inode;journalctl -xe、tail -f /var/log/messages /var/log/maillog 跟踪最新错误;logrotate 正常配置,journalctl --vacuum-time 1w 清理旧日志。lsof +D /var/spool、fuser -v /var/spool,必要时停止相关进程后再维护。五 安全清理与回退建议
tar czf /root/spool-backup-$(date +%F).tgz /etc/postfix /var/spool/postfix /var/spool/mail /var/spool/cups。postsuper -d ALL 仅作临时止血。find /var/spool/ -type f -mtime +7 -size +50M -delete(按时间与大小清理)。logrotate 与 journalctl --vacuum-time,避免直接删除正在写入的日志文件。chown -R <原属主>:<原组> <目录>、chmod -R <原权限> <目录>;etckeeper)。