在 CentOS(以及 RHEL 系列)里,**/var/spool 目录或其中子目录“消失”**通常不是真的被删了,而是以下几种常见原因之一。我按出现频率给你梳理一下:
某些 spool 目录内容本身就是临时性的:
/var/spool/mail(邮件)/var/spool/cron(cron 任务)/var/spool/anacron/var/spool/postfix如果:
systemd-tmpfiles 清理rm -rf /var/spool/*都可能导致内容消失,但目录本身一般还在。
✅ 检查:
ls -ld /var/spool
mount | grep spool
例如:
rm -rf /var/spool
rm -rf /var/spool/cron
CentOS 不会自动重建这些目录,服务启动失败但不会自动创建。
典型表现:
crond 无法运行mail 命令报错postfix 启动失败✅ 检查:
ls /var/spool
rpm -V cronie
某些 spool 目录是软件包拥有的:
| 目录 | 所属包 |
|---|---|
| /var/spool/cron | cronie |
| /var/spool/mail | mailx / setup |
| /var/spool/postfix | postfix |
| /var/spool/at | at |
如果你:
yum remove postfixyum reinstall cronie可能导致目录丢失或被清空。
✅ 修复示例:
yum reinstall cronie
mkdir -p /var/spool/cron
chmod 700 /var/spool/cron
有时目录存在,但:
表现为:
ls 能看到✅ 检查:
ls -Z /var/spool
restorecon -Rv /var/spool
可能导致:
✅ 检查:
df -h
dmesg | grep -i error
如果你不确定少了什么,可重建基础 spool 结构:
mkdir -p /var/spool/cron
mkdir -p /var/spool/mail
mkdir -p /var/spool/anacron
chmod 700 /var/spool/cron
chmod 1777 /var/spool/mail
然后重启相关服务:
systemctl restart crond
systemctl restart postfix
如果你能告诉我:
/var/spool/cron?)我可以更精准帮你定位原因。