温馨提示×

centos分区为何满了

小樊
36
2026-10-17 21:14:40
栏目: 智能运维

CentOS 分区“满了”通常是指某个挂载点(如 /、/var、/home、/tmp)的磁盘使用率达到了 100%。下面从常见原因和排查方法两方面说明。


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

1. 日志文件过大(最常见)

  • /var/log/ 目录下日志无限增长
  • 常见文件:
    • /var/log/messages
    • /var/log/secure
    • /var/log/maillog
    • /var/log/httpd/
  • 若 logrotate 未正常工作,日志会爆增

2 软件包缓存

  • /var/cache/yum/ 累积大量 RPM 缓存
du -sh /var/cache/yum

3. Docker / 容器相关(如已安装)

  • /var/lib/docker 占用巨大
  • 镜像、容器日志未清理

4. 数据库文件增长

  • MySQL / MariaDB:/var/lib/mysql
  • PostgreSQL:/var/lib/pgsql

5. 被删除但仍被进程占用的文件

  • 文件已 rm,但进程未释放
  • df 显示满,du 却找不到大文件

6. 用户家目录或上传目录

  • /home
  • Web 上传目录(如 /var/www)

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

  • 大量小文件导致 inode 用光
df -i

8. 系统核心转储(core dump)

  • /var/crash 或当前目录生成 core.*

二、如何快速排查

1. 查看哪个分区满了

df -h

2. 查看目录占用

du -sh /* 2>/dev/null

逐步深入:

du -sh /var/*

3. 查找大文件

find / -type f -size +100M

4. 检查被删除但未释放的文件

lsof | grep deleted

5. 检查 inode

df -i

三、常见解决办法

清理日志

journalctl --vacuum-size=100M
rm -f /var/log/*.old

清理 yum 缓存

yum clean all

清理 Docker

docker system prune -a

重启占用文件的进程(谨慎)

systemctl restart xxx

四、总结一句话

CentOS 分区满了,90% 是日志或缓存问题,先 df -h 看分区,再 du 找目录,最后检查“已删除未释放”的文件。

如果你愿意,可以把 df -h 和 du -sh /* 的输出贴出来,我可以帮你精准判断是哪一个目录导致的。

0 踩