温馨提示×

怎么清理CentOS磁盘垃圾

小樊
38
2026-08-04 05:12:50
栏目: 智能运维

在 CentOS 系统中清理磁盘垃圾,可以按从安全到深入的顺序来操作。下面给你一套实战常用方案,适用于 CentOS 7 / 8 / Stream。


一、先查看磁盘使用情况(很重要)

df -h

查看哪个分区快满了。

再看哪些目录占用大:

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

二、清理 YUM / DNF 缓存(最常见)

CentOS 7(yum)

yum clean all

CentOS 8 / Stream(dnf)

dnf clean all

清理后缓存位置:

/var/cache/yum
/var/cache/dnf

三、删除无用的旧内核(⚠重要)

CentOS 更新后会保留多个内核,非常占空间。

查看当前内核

uname -r

查看已安装内核

rpm -qa | grep kernel

删除旧内核(保留当前)

package-cleanup --oldkernels --count=1

适用于 CentOS 7
CentOS 8 可用 dnf remove 手动删除


四、清理日志文件(/var/log)

查看日志大小

du -sh /var/log/*

清理旧日志

find /var/log -type f -name "*.log-*" -delete
find /var/log -type f -name "*.log" -exec truncate -s 0 {} \;

只保留最近 30 天日志

find /var/log -type f -mtime +30 -delete

五、清理 /tmp 临时文件

rm -rf /tmp/*

或只删 7 天前的:

find /tmp -type f -mtime +7 -delete

六、清理 Docker 垃圾(如果你在用 Docker)

docker system df
docker system prune -a

⚠ 会删除:

  • 未使用的容器
  • 未使用的镜像
  • 网络、缓存

七、清理 journal 日志(systemd)

journalctl --disk-usage
journalctl --vacuum-time=7d

或限制大小:

journalctl --vacuum-size=500M

八、清理用户缓存

rm -rf ~/.cache/*

九、查找大文件(定位“元凶”)

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

十、进阶:自动清理(推荐)

安装自动清理工具

yum install -y yum-utils

设置定时清理(示例)

0 3 * * 0 yum clean all && journalctl --vacuum-time=7d

快速综合清理(安全版)

yum clean all
journalctl --vacuum-time=7d
rm -rf /tmp/*
find /var/log -type f -name "*.log-*" -delete

⚠ 注意事项

  • ❌ 不要手动删除 /var/lib/mysql/var/lib/docker 等重要数据
  • ✅ 先在测试环境或确认路径后再执行
  • ✅ 清理前建议做一次快照(如果是云服务器)

如果你愿意,可以把下面两条命令的输出贴出来,我可以直接帮你判断该删哪块

df -h
du -sh /* 2>/dev/null | sort -hr

0