温馨提示×

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 makecachednf 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=500Mjournalctl --vacuum-time=7d
  • 传统日志(/var/log):
    • 使用 logrotate 按日/周轮换并压缩旧日志,删除超期归档(配置位于 /etc/logrotate.conf/etc/logrotate.d/)。
    • 手动清理旧压缩日志示例:find /var/log -type f -name “*.gz” -delete(避免直接清空正在写入的 .log 文件)。

四、不再需要的软件包与旧内核

  • 自动移除无用依赖:
    • yum autoremovednf 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 时避开正在使用的会话临时文件。
    • 清理前确认命令作用范围,重要数据先备份;生产环境尽量在维护时段执行并预留回滚方案。

0