温馨提示×

怎么释放CentOS磁盘空间

小樊
45
2026-08-30 05:49:59
栏目: 云计算

释放 CentOS 磁盘空间可以从定位大文件 / 大目录清理不需要的数据两个方向入手。下面按常用且安全的顺序给你一套实操方案。


一、先确认磁盘使用情况

df -h
  • 看哪个分区(如 //home/var)快满了。

再查看目录占用情况

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

二、清理日志文件(最常见原因)

1️⃣ 清理 systemd 日志

journalctl --disk-usage
journalctl --vacuum-time=7d
# 或按大小
journalctl --vacuum-size=500M

2️⃣ 清理 /var/log 日志

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 / DNF 缓存

CentOS 7

yum clean all
rm -rf /var/cache/yum

CentOS 8 / Stream

dnf clean all
rm -rf /var/cache/dnf

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

查看当前内核:

uname -r

查看已安装内核:

rpm -q kernel

删除旧内核(保留当前 + 一个备份):

package-cleanup --oldkernels --count=2

五、查找并删除大文件

查找大于 1G 的文件

find / -type f -size +1G 2>/dev/null

查找大于 100M 的文件

find / -type f -size +100M 2>/dev/null

⚠️ 删除前确认用途,尤其是数据库、备份、日志文件。


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

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

或者告诉我:

  • ✅ CentOS 版本
  • ✅ 是服务器还是本地虚拟机
  • ✅ 是 / 满了还是某个目录满了

0