温馨提示×

怎么清理CentOS磁盘空间

小樊
82
2026-08-04 04:53:51
栏目: 云计算

清理 CentOS 磁盘空间可以从系统日志、缓存、旧内核、无用软件、大文件等方面入手。下面按安全 → 常用 → 进阶给你一套完整方案,适合 CentOS 7 / 8 / Stream。


一、先确认磁盘使用情况(很重要)

df -h

查看哪个分区快满了(通常是 / 或 /var)。

再找大目录:

du -h --max-depth=1 / | sort -hr | head -20

二、清理系统缓存和日志(安全)

1️⃣ 清理 yum / dnf 缓存

# CentOS 7
yum clean all

# CentOS 8 / Stream
dnf clean all

2️⃣ 清理 /var/cache

rm -rf /var/cache/yum/*

三、清理系统日志(最容易爆盘)

1️⃣ journal 日志

journalctl --disk-usage

限制日志大小:

journalctl --vacuum-size=200M
# 或
journalctl --vacuum-time=7d

2️⃣ 删除旧日志文件

rm -f /var/log/*.log.*
rm -f /var/log/messages.*
rm -f /var/log/secure.*

⚠️ 不要直接删正在写入的日志文件(如 messages、secure)


四、删除旧内核(非常有效)

CentOS 升级后会保留多个内核。

查看当前内核

uname -r

查看已安装内核

rpm -qa | grep kernel

删除旧内核(保留当前)

# CentOS 7
yum remove kernel-旧版本

# CentOS 8
dnf remove kernel-core-旧版本

✅ 建议至少保留 2 个内核


五、清理 Docker(如果是 Docker 主机)

清理无用容器、镜像、缓存

docker system df
docker system prune -a

⚠️ 会删除未使用的镜像和容器


六、清理大文件(经常是罪魁祸首)

查找大于 500MB 的文件

find / -xdev -type f -size +500M

常见位置:

  • /var/log
  • /tmp
  • /home
  • /root

七、清理 /tmp 目录

rm -rf /tmp/*

⚠️ 确认没有程序正在使用


八、删除无用软件包

# CentOS 7
yum autoremove

# CentOS 8
dnf autoremove

九、排查 inode 是否满了(少见但致命)

df -i

如果 inode 满了,通常是:

  • 大量小文件
  • /var/spool 或 /tmp

十、推荐一键检查脚本(安全)

df -h
du -sh /var/log /tmp /home /var/cache
journalctl --disk-usage

✅ 常见磁盘爆满原因总结

原因 解决方法
日志太大 journalctl / /var/log
旧内核 删除旧 kernel
yum 缓存 yum clean all
Docker docker system prune
大文件 find 查找
inode 满 删除小文件

如果你愿意,可以把下面命令的输出贴出来,我可以精准帮你分析:

df -h
du -h --max-depth=1 / | sort -hr | head -20

或者告诉我:

  • CentOS 版本
  • 是否跑 Docker / MySQL / Java
  • 哪个目录满了

0 踩