清理 CentOS 磁盘空间可以从系统日志、缓存、旧内核、无用软件、大文件等方面入手。下面按安全 → 常用 → 进阶给你一套完整方案,适合 CentOS 7 / 8 / Stream。
df -h
查看哪个分区快满了(通常是 / 或 /var)。
再找大目录:
du -h --max-depth=1 / | sort -hr | head -20
# CentOS 7
yum clean all
# CentOS 8 / Stream
dnf clean all
rm -rf /var/cache/yum/*
journalctl --disk-usage
限制日志大小:
journalctl --vacuum-size=200M
# 或
journalctl --vacuum-time=7d
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 system df
docker system prune -a
⚠️ 会删除未使用的镜像和容器
find / -xdev -type f -size +500M
常见位置:
/var/log/tmp/home/rootrm -rf /tmp/*
⚠️ 确认没有程序正在使用
# CentOS 7
yum autoremove
# CentOS 8
dnf autoremove
df -i
如果 inode 满了,通常是:
/var/spool 或 /tmpdf -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
或者告诉我: