在 CentOS 系统中,优化清理步骤可以从自动化、安全性、覆盖维度、可恢复性四个方面入手。下面给你一套实用且可落地的优化方案,适用于 CentOS 7 / 8(Stream 也适用)。
优化前先分类,避免“乱删”:
| 类型 | 举例 |
|---|---|
| 软件包缓存 | yum / dnf 缓存 |
| 日志文件 | /var/log |
| 临时文件 | /tmp、/var/tmp |
| 废弃内核 | 旧 kernel |
| 无用依赖 | 孤立包 |
| 大文件 | 未被注意的大文件 |
| Docker / 容器 | 镜像、卷 |
# CentOS 7
yum clean all
# CentOS 8 / Stream
dnf clean all
✅ 可定期执行
✅ 安全、无风险
⚠️ 只保留当前使用内核
# 查看当前内核
uname -r
# 查看已安装内核
rpm -qa | grep kernel
# 删除旧内核(CentOS 8)
dnf remove --oldinstallonly
CentOS 7 可用:
package-cleanup --oldkernels --count=1
✅ 可避免 /boot 爆满
✅ 推荐加入定期任务
journalctl --vacuum-time=7d
journalctl --vacuum-size=500M
find /var/log -type f -name "*.log" -mtime +30 -delete
✅ 避免日志占满磁盘
✅ 建议保留 30 天
rm -rf /tmp/*
rm -rf /var/tmp/*
⚠️ 避免删除正在使用的 socket / pid 文件
✅ 可放在重启后执行
# CentOS 7
yum autoremove
# CentOS 8+
dnf autoremove
✅ 减少系统冗余
✅ 每次卸载软件后执行
du -h --max-depth=1 / | sort -hr | head -20
常用清理目标:
✅ 精确清理,避免误删
docker system prune -f
docker volume prune -f
✅ 非常有效
⚠️ 会删除未使用镜像
CentOS 7+ 自带:
systemctl enable --now dnf-automatic.timer
编辑配置:
vim /etc/dnf/automatic.conf
apply_updates = yes
✅ 自动更新 + 清理
✅ 企业环境友好
crontab -e
示例(每周日凌晨 3 点):
0 3 * * 0 yum clean all && journalctl --vacuum-time=7d
df -h
du -sh /*
明确不清理:
# 1. 查看磁盘
df -h
# 2. 清理缓存
dnf clean all
# 3. 删除旧内核(保留1个)
dnf remove --oldinstallonly
# 4. 删除无用依赖
dnf autoremove
# 5. 清理日志
journalctl --vacuum-time=7d
# 6. 清理临时文件
rm -rf /tmp/*
# 7. 再次检查
df -h
df -h 输出)只要告诉我你的 CentOS 版本 + 使用场景 即可。