清理 CentOS 系统冗余可以从已安装软件、缓存、日志、内核、陈旧文件等多个维度进行。下面按安全 → 进阶 → 注意项的顺序给你一份实用清单,适用于 CentOS 7 / 8 / Stream。
# CentOS 7
yum clean all
# CentOS 8 / Stream
dnf clean all
删除缓存目录(可选):
rm -rf /var/cache/yum/*
rm -rf /var/cache/dnf/*
# CentOS 7
yum autoremove
# CentOS 8 / Stream
dnf autoremove
✅ 会删除不再被任何软件依赖的包
CentOS 更新后会保留多个内核,占用 /boot
uname -r
# CentOS 7
rpm -qa | grep kernel
# CentOS 8
dnf list installed kernel
# CentOS 7
package-cleanup --oldkernels --count=1
# CentOS 8 / Stream
dnf remove $(dnf repoquery --installonly --latest-limit=-1 -q)
journalctl --disk-usage
journalctl --vacuum-time=7d
或限制大小:
journalctl --vacuum-size=500M
du -sh /var/log/*
手动清理大日志:
truncate -s 0 /var/log/messages
truncate -s 0 /var/log/secure
⚠️ 不建议直接 rm,可用 truncate
rm -rf /tmp/*
rm -rf /var/tmp/*
定期清理(建议):
systemctl enable --now systemd-tmpfiles-clean.timer
find / -xdev -type f -size +500M
du -h --max-depth=1 / | sort -hr
docker system df
docker system prune -a
⚠️ 会删除未使用的镜像、容器、网络
rm -rf ~/.cache/*
systemctl list-unit-files --type=service | grep enabled
关闭无用服务:
systemctl disable 服务名
systemctl stop 服务名
/usr、/lib/var#!/bin/bash
echo "清理 yum/dnf 缓存"
yum clean all 2>/dev/null
dnf clean all 2>/dev/null
echo "删除无用依赖"
yum autoremove -y 2>/dev/null
dnf autoremove -y 2>/dev/null
echo "清理临时文件"
rm -rf /tmp/* /var/tmp/*
echo "清理 journal 日志"
journalctl --vacuum-time=7d
echo "Done"
你可以告诉我:
我可以给你更精准、最小风险的清理方案。