CentOS Spool 诊断与排查指南
一、先快速定位是哪一类的 Spool
| 类型 |
典型目录 |
主要用途 |
快速检查命令 |
| 邮件 Postfix |
/var/spool/postfix/ |
邮件队列与投递 |
postqueue -p、postsuper -d ALL |
| 用户邮件 |
/var/spool/mail/ |
本地用户收件箱 |
ls -l /var/spool/mail、mail |
| 打印 CUPS |
/var/spool/cups/ |
打印作业队列 |
systemctl status cups、lpstat -p |
| Cron |
/var/spool/cron/ |
定时任务临时文件 |
ls -l /var/spool/cron |
| 临时/缓冲 |
/var/spool/ |
各类服务临时文件 |
du -sh /var/spool、find /var/spool -type f -size +50M |
二、通用诊断步骤
- 检查服务状态与依赖
- 查看服务:systemctl status cups、systemctl status postfix
- 查看依赖:systemctl list-dependencies cups、postfix
- 查看日志定位错误
- 实时日志:journalctl -xe -u cups、journalctl -xe -u postfix
- 传统日志:tail -f /var/log/maillog、/var/log/messages、/var/log/cron
- 检查磁盘与 inode
- 空间:df -h
- 占用:du -sh /var/spool;异常大文件:find /var/spool -type f -size +50M
- 检查权限与属主
- 目录权限:ls -ld /var/spool /var/spool/postfix /var/spool/mail
- 修复示例:chown root:root /var/spool;chmod 755 /var/spool
- 资源与异常进程
- 资源:top、free -m
- 句柄与占用:lsof | grep /var/spool
- 变更后重启服务
- systemctl restart cups、systemctl restart postfix
- 安全提示
- 清理或删除前先备份;生产环境谨慎执行清空队列与删除文件操作。
三、邮件队列类 Spool 深入排查(Postfix)
- 判断队列是否积压
- 查看队列:postqueue -p
- 统计数量:postqueue -p | tail -1
- 处理异常队列
- 删除单封:postsuper -d <queue_id>
- 清空队列(慎用):postsuper -d ALL
- 查看投递日志
- tail -f /var/log/maillog(或 /var/log/mail.log),关注 defer/sent/bounce 关键字
- 检查邮件积压目录
- 观察延迟投递文件:ls -l /var/spool/postfix/maildrop/,必要时清理
- 常见根因
- 目标主机不可达、DNS 解析失败、反垃圾策略拒收、配额/磁盘满、权限错误。
四、打印队列类 Spool 深入排查(CUPS)
- 服务与队列状态
- 服务:systemctl status cups;cupsctl --debug-logging(开启调试日志)
- 队列:lpstat -p -o;cancel ;disable ;enable
- 日志与配置
- 日志:tail -f /var/log/cups/error_log
- 配置:/etc/cups/cupsd.conf、/etc/cups/printers.conf
- 目录与权限
- 队列目录:/var/spool/cups;检查权限与可用空间
- 常见根因
- 打印机离线/驱动不匹配、权限/SELinux 限制、配额或磁盘满、依赖服务未就绪。
五、用户邮件与 Cron Spool 排查
- 用户邮件
- 查看:mail 或 cat /var/spool/mail/root
- 清空:cat /dev/null > /var/spool/mail/root
- 减少登录提示:在 /etc/profile 中添加 unset MAILCHECK 并 source /etc/profile
- Cron
- 任务文件:ls -l /var/spool/cron
- 日志:tail -f /var/log/cron,排查脚本输出与错误导致的异常行为。