温馨提示×

centos分区为何满了吗

小樊
34
2026-10-20 18:41:43
栏目: 智能运维

“CentOS 分区为何满了”通常不是某一种固定原因,而是磁盘使用被某些内容悄悄占满。下面按最常见原因 → 排查方法 → 解决思路给你说明。


一、CentOS 分区常见的“满”的原因

1️⃣ 日志文件暴涨(最常见)

  • /var/log/ 下的日志:
    • messages
    • secure
    • cron
    • audit/audit.log
  • 服务异常导致日志循环写入

✅ 检查:

du -sh /var/log/*

2️⃣ 系统日志服务(journalctl)

CentOS 7+ 使用 systemd-journald,可能占用几 GB

✅ 查看:

journalctl --disk-usage

✅ 清理:

journalctl --vacuum-size=500M

3️⃣ 被删除但仍被进程占用的文件

文件删了,但程序还在写,空间不会释放

✅ 查看:

lsof | grep deleted

✅ 解决:

  • 重启对应服务
  • 或 > 文件 清空而不是 rm

4️⃣ 软件包缓存

/var/cache/yum

✅ 清理:

yum clean all

5️⃣ Docker(如果你装了)

  • /var/lib/docker
  • 容器日志、镜像、卷

✅ 查看:

docker system df

✅ 清理:

docker system prune -a

6️⃣ 网站 / 应用数据

  • Nginx / Apache 日志
  • 上传文件
  • 数据库(MySQL binlog)

✅ 查看大目录:

du -h --max-depth=1 /

7️⃣ inode 满了(不是空间满)

有时 df -h 没满,但 df -i 满了

✅ 检查:

df -i

✅ 原因:

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

二、快速定位“是谁占满”

1️⃣ 先看哪个分区满

df -h

2️⃣ 进入满的分区逐层查

cd /
du -h --max-depth=1 | sort -h

三、你可以直接告诉我

如果你愿意,可以把下面命令的输出发给我,我可以直接帮你判断:

df -h
df -i
du -sh /var/log /var /tmp /home 2>/dev/null

如果你能说明:

  • CentOS 版本(6 / 7 / 8 / Stream)
  • 是不是服务器 / 虚拟机
  • 是否跑 Docker、MySQL、Nginx

我可以给你更精准的答案。

0 踩