温馨提示×

centos如何回收利用临时文件

小樊
33
2025-11-22 00:47:13
栏目: 智能运维

CentOS 回收临时文件的实用方案

一 核心清理范围与原则

  • 系统临时目录:/tmp(重启通常会清空)、/var/tmp(保留时间更长,需手动或按计划清理)。
  • 包管理器缓存:/var/cache/yum/var/cache/dnf,可安全清理以释放空间。
  • 日志与系统缓存:如 journald 日志、文件系统页缓存(仅在必要时清理)。
  • 原则:避免误删正在使用的文件;优先使用系统自带机制(如 systemd-tmpfiles)按计划回收;对关键目录先备份再清理。

二 立即清理的常用命令

  • 清理 YUM 缓存(CentOS 7 及更早):sudo yum clean all
  • 清理 DNF 缓存(CentOS 8+):sudo dnf clean all
  • 清理临时目录(谨慎执行,确保无关键进程占用):
    • sudo rm -rf /tmp/*
    • sudo rm -rf /var/tmp/*
  • 按时间清理旧文件(示例:删除 7 天前的文件):
    • sudo find /tmp -type f -mtime +7 -delete
    • sudo find /var/tmp -type f -mtime +7 -delete
  • 清理 systemd 日志(示例:保留最近 2 周):sudo journalctl --vacuum-time=2weeks
  • 清理文件系统页缓存(仅在必要时,执行前先 sync):sudo sync && echo 3 > /proc/sys/vm/drop_caches
  • 可选图形化工具:BleachBitsudo yum install -y bleachbit,按需选择清理项)。

三 自动化与系统托管清理

  • 使用 systemd-tmpfiles(CentOS 7+ 推荐):
    • 立即清理:sudo systemd-tmpfiles --clean
    • 查看与配置规则:/etc/tmpfiles.d/*.conf,可自定义保留时间,例如创建 /etc/tmpfiles.d/local.conf
      • 示例:w /tmp 14d(表示清理 /tmp 下超过 14 天未被访问的文件)
    • 服务托管(确保开机与周期执行):
      • sudo systemctl enable --now systemd-tmpfiles-setup.service
      • sudo systemctl enable --now systemd-tmpfiles-clean.timer
  • 兼容旧版 tmpwatch(CentOS 6 常用):
    • 安装:sudo yum install -y tmpwatch
    • 按访问时间清理(示例:/tmp 保留 10 天,/var/tmp 保留 30 天):
      • sudo tmpwatch 10d /tmp
      • sudo tmpwatch 30d /var/tmp
    • 系统通常已通过 /etc/cron.daily/tmpwatch 做日常清理。

四 定时任务与监控建议

  • 编写清理脚本(示例):
    • #!/bin/bash
    • sudo find /tmp -type f -mtime +7 -delete
    • sudo find /var/tmp -type f -mtime +7 -delete
    • sudo yum clean all || sudo dnf clean all
    • sudo systemd-tmpfiles --clean
  • 加入 cron(示例:每天 02:00 执行):
    • 0 2 * * * /path/to/cleanup.sh
  • 磁盘占用排查:
    • 安装并使用 ncdusudo yum install -y ncdu && sudo ncdu /,定位大文件或异常目录后再定向清理。

五 注意事项

  • 生产环境尽量避免在业务高峰执行 rm -rf /tmp/*find ... -delete,以免正在运行的程序异常。
  • /var/tmp 常用于会话与缓存,清理周期可长于 /tmp;必要时先停止相关服务。
  • 清理日志与缓存前确认对业务无影响;清理页缓存可能导致短期 I/O 抖动。
  • 对关键数据或未知文件,优先备份后再删除;使用 find -mtime/-atime 时先小范围测试命令。

0