在 CentOS(以及 RHEL 系列)里,spool(/var/spool)相关出错是一个非常常见的现象,但“出错”本身只是一个目录用途的描述,具体原因要看你遇到的是哪一类问题。下面我按最常见场景给你系统梳理一下。
/var/spool 是 缓冲/队列目录,常见子目录包括:
/var/spool/mail:用户邮件/var/spool/cron:cron 任务/var/spool/postfix:Postfix 邮件队列/var/spool/cups:打印队列/var/spool/at:at 任务/var/spool/anacron:anacron出错通常不是 spool 本身坏,而是里面的服务或权限异常。
例如:
/var/spool/mail Permission denied
/var/spool/cron/root: Permission denied
原因:
排查:
ls -Z /var/spool
restorecon -Rv /var/spool
修复权限示例:
chown root:mail /var/spool/mail
chmod 1777 /var/spool/mail
spool 目录极容易“爆”:
检查:
df -h
df -i
du -sh /var/spool/*
常见处理:
rm -f /var/spool/mail/*
rm -rf /var/spool/postfix/maildrop/*
错误示例:
postfix/qmgr: warning: maildir queue is full
解决:
systemctl restart postfix
postqueue -p
postsuper -d ALL
错误:
crond: can't create /var/spool/cron/root
原因:
/var/spool/cron 被删修复:
mkdir -p /var/spool/cron
chmod 700 /var/spool/cron
chown root:root /var/spool/cron
错误:
/var/spool/cups: No space left
处理:
systemctl stop cups
rm -rf /var/spool/cups/*
systemctl start cups
如果是:
Input/output error
可能:
检查:
dmesg | grep error
fsck -y /dev/sdX
df -h
df -i
ls -ld /var/spool
ls -Z /var/spool
journalctl -xe | tail -50
你可以直接贴出具体报错信息,例如:
我可以直接告诉你是哪一行配置或权限错了,怎么改。
你现在是遇到 哪一种 spool 报错?