释放 CentOS 磁盘空间可以从定位大文件 / 大目录和清理不需要的数据两个方向入手。下面按常用且安全的顺序给你一套实操方案。
df -h
/、/home、/var)快满了。再查看目录占用情况:
du -h --max-depth=1 / | sort -hr | head -20
journalctl --disk-usage
journalctl --vacuum-time=7d
# 或按大小
journalctl --vacuum-size=500M
du -sh /var/log/*
手动清理旧日志:
rm -f /var/log/*.log.1
rm -f /var/log/messages-*
rm -f /var/log/secure-*
⚠️ 不要直接删除正在写入的日志文件(如 messages、secure),可以用:
truncate -s 0 /var/log/messages
yum clean all
rm -rf /var/cache/yum
dnf clean all
rm -rf /var/cache/dnf
查看当前内核:
uname -r
查看已安装内核:
rpm -q kernel
删除旧内核(保留当前 + 一个备份):
package-cleanup --oldkernels --count=2
find / -type f -size +1G 2>/dev/null
find / -type f -size +100M 2>/dev/null
⚠️ 删除前确认用途,尤其是数据库、备份、日志文件。
docker system df
docker system prune -a
⚠️ 会删除未使用的镜像、容器、网络。
rm -rf /tmp/*
rm -rf /var/tmp/*
lsof +L1
找到后重启相关进程或 kill:
kill -9 PID
| 目录 | 常见原因 |
|---|---|
| /var/log | 日志 |
| /var/cache | 缓存 |
| /var/lib/docker | Docker |
| /home | 用户数据 |
| /var/lib/mysql | 数据库 |
| /var/spool/mail | 邮件 |
yum clean all
journalctl --vacuum-size=500M
rm -rf /tmp/*
rm -rf /var/tmp/*
你可以把下面命令的输出贴出来,我可以精准告诉你要删什么,不删什么:
df -h
du -h --max-depth=1 / | sort -hr | head -20
或者告诉我:
/ 满了还是某个目录满了