在 CentOS 上做“清理(cleanup)”时,核心原则是:不删系统关键文件、可回滚、先评估后操作。下面按“安全等级”从低到高给你一套实操清单。
一、最安全:清理包管理器缓存(必做)
不会影响系统运行,只删下载缓存。
# CentOS 7
yum clean all
# CentOS 8 / Stream
dnf clean all
可选:
package-cleanup --oldkernels --count=2
保留 2 个内核,防止新内核有问题。
二、安全:清理日志(可控)
1. 用 journalctl(推荐)
# 查看日志占用
journalctl --disk-usage
# 只保留最近 7 天
journalctl --vacuum-time=7d
# 或限制大小
journalctl --vacuum-size=500M
2. 清理 /var/log(谨慎)
只删“已轮转”的:
ls /var/log/*.log-* # 先确认
rm -f /var/log/*.log-*
❌ 不要直接 rm -rf /var/log
三、安全:清理临时文件
# 系统临时
rm -rf /tmp/*
rm -rf /var/tmp/*
# 用户缓存(谨慎)
rm -rf ~/.cache/*
⚠️ 注意:
- 不要在服务运行时删
/tmp下正在用的 socket 文件 - 可用
lsof | grep /tmp检查
四、中等风险:清理无用软件包
# 查看可卸载的依赖
package-cleanup --leaves
# 删除无用依赖(CentOS 7)
yum autoremove
⚠️ 确认列表里没有:
- 数据库(mysql/postgresql)
- 中间件(nginx/httpd)
- 你手动编译的东西
五、谨慎:清理 Docker(如果用)
docker system df
docker system prune
⚠️ 会删:
- 停止的容器
- 未使用的网络
- 悬空镜像
更安全:
docker image prune -a --filter "until=720h"
六、高风险(不推荐新手)
rm -rf /var/cache/*
rm -rf /usr/local/*
除非你非常清楚用途。
七、清理前的安全习惯(很重要)
- 先 df -h 看哪里满了
- 先 du 找大目录
du -sh /* 2>/dev/null
- 重要操作前备份
tar czf /backup/etc.tar.gz /etc
- 用 rm -i 替代 rm -rf(临时)
alias rm='rm -i'
八、推荐“安全清理脚本思路”
yum clean all
journalctl --vacuum-time=7d
rm -rf /tmp/*
docker system prune -f
如果你愿意,可以告诉我:
- CentOS 版本(7 / 8 / Stream)
- 是 服务器还是容器
- 是哪块空间满了(
/、/var、/home)
我可以给你定制一套不翻车的清理命令。