温馨提示×

centos分区为何满盘

小樊
49
2026-10-15 00:44:50
栏目: 智能运维

在 CentOS(以及大多数 Linux 系统)中,“分区满盘”通常不是单一原因,而是几类常见问题叠加。下面按最常见 → 较少见的顺序说明,并给出排查方法。


一、最常见原因

1. 日志文件(/var/log)撑爆磁盘

CentOS 中日志增长极快,尤其是:

  • /var/log/messages
  • /var/log/secure
  • /var/log/audit/audit.log
  • 应用日志(nginx、mysql、docker 等)

排查:

du -sh /var/log/*

常见原因:

  • rsyslog 配置不当
  • 程序疯狂报错(如认证失败)
  • 未配置 logrotate

2. 未释放的“已删除文件”(重点!)

这是最容易忽略的情况:

文件已 rm 删除,但进程仍在占用 → 磁盘满,但 du 看不到

排查:

lsof | grep deleted

解决:

  • 重启占用进程
  • 或清空文件而不是删除:
> /path/to/file

3. Docker / Podman 占用(非常常见)

CentOS 常用 Docker,默认存储在:

/var/lib/docker

问题包括:

  • 镜像太多
  • 容器日志无限增长
  • 未清理停止的容器

排查:

docker system df

清理:

docker system prune -a

4. YUM / 缓存文件

/var/cache/yum

清理:

yum clean all

二、系统结构相关原因

5. 根分区(/)太小,其他分区很空

CentOS 默认可能:

  • / 只有 50G
  • /home 很大

但服务全在 / 上

查看:

df -h

解决:

  • 迁移数据(如 /var/lib/mysql → /home)
  • 或重新分区(需重装或 LVM 调整)

6. inode 耗尽(不是空间满)

有时:

df -h   # 显示还有空间
df -i   # inode 100%

原因:

  • 大量小文件(如 session、缓存)

解决:

find /path -type f | wc -l

三、异常或故障类原因

7. 程序 Bug / 死循环写文件

  • 日志报错循环
  • 备份脚本错误
  • 监控脚本异常

排查:

top
iotop

8. 被攻击 / 入侵

  • 挖矿程序写日志
  • 暴力破解导致 secure 暴涨
  • 上传大量文件

迹象:

  • CPU 异常
  • 未知进程
  • /tmp 异常文件

四、快速排查标准流程(建议收藏)

# 1. 看哪个分区满
df -h

# 2. 看目录占用
du -sh /* 2>/dev/null

# 3. 看已删除但未释放
lsof | grep deleted

# 4. 看 inode
df -i

五、总结一句话

CentOS 分区满,80% 是日志 + 删除未释放 + Docker,不是真的“磁盘小”。

如果你愿意,可以:

  • 贴 df -h 和 du -sh /* 的输出
  • 说明是 物理机 / 虚拟机 / 云服务器
  • 说明主要跑什么服务(Web / DB / Docker)

我可以帮你精准定位是哪一类问题。

0 踩