centos cleanup删除哪些文件
小樊
42
2025-12-17 15:03:00
CentOS 常见清理命令会删除的文件范围
一、包管理器缓存
- 使用 yum clean all(或细粒度选项)会删除 /var/cache/yum/ 下的内容,包括:
- 元数据 metadata:仓库索引、包列表、依赖关系等
- 软件包 packages:下载的 .rpm 包(仅当启用 keepcache=1 时存在)
- 头部信息 headers:旧版 YUM 的头文件缓存(新版本基本不再使用)
- 数据库缓存 dbcache:SQLite 缓存
- 插件缓存 pluginconf:YUM 插件生成的临时/配置数据
- 使用 dnf clean all(CentOS 8+)会清理 /var/cache/dnf/ 下的同类缓存内容。
- 清理后建议执行 yum makecache 或 dnf makecache 重建缓存,避免后续操作因无缓存而变慢或失败。
二、临时文件
- 临时目录 /tmp 与 /var/tmp 常见清理方式及删除内容:
- 手动清理:删除 /tmp/、/var/tmp/** 中不再使用的文件(谨慎,避免删除正在使用的临时文件)。
- 系统服务清理:通过 systemd-tmpfiles-clean.service(由 /usr/lib/systemd/systemd-tmpfiles --clean 触发)按 /etc/tmpfiles.d/ 配置删除超期临时文件与目录。
- 定时任务:可用 cron 定期执行清理,例如:
- 0 2 * * * /usr/bin/systemd-tmpfiles --clean --file=/etc/tmpfiles.d/*.conf
- 说明:/tmp 通常在重启时会被清理;/var/tmp 保留时间更长,需按需或按策略清理。
三、日志文件
- systemd 日志(journald):
- 查看占用:journalctl --disk-usage
- 按大小/时间清理:journalctl --vacuum-size=500M、journalctl --vacuum-time=7d
- 传统日志(/var/log):
- 使用 logrotate 按日/周轮换并压缩旧日志,删除超期归档(配置位于 /etc/logrotate.conf 与 /etc/logrotate.d/)。
- 手动清理旧压缩日志示例:find /var/log -type f -name “*.gz” -delete(避免直接清空正在写入的 .log 文件)。
四、不再需要的软件包与旧内核
- 自动移除无用依赖:
- yum autoremove 或 dnf autoremove:删除因依赖关系已不再需要的包(不会移除当前运行所需依赖)。
- 删除旧内核(需先安装 yum-utils):
- 查看当前内核:uname -r
- 保留最新 2 个内核:package-cleanup --oldkernels --count=2
- 说明:旧内核位于 /boot,保留至少 1–2 个以便回滚。
五、可选清理与风险提示
- 可选清理(按需):
- 大文件定位:du -sh / | sort -rh* 或 ncdu / 查找并确认后删除无用大文件。
- 内存页缓存(不影响文件):sync && echo 3 > /proc/sys/vm/drop_caches(仅在明确需要时执行)。
- DNS 缓存(如使用 systemd-resolved):systemd-resolve --flush-caches。
- 风险提示:
- 不要直接删除正在写入的日志文件;清理 /tmp 时避开正在使用的会话临时文件。
- 清理前确认命令作用范围,重要数据先备份;生产环境尽量在维护时段执行并预留回滚方案。