温馨提示×

CentOS磁盘清理怎么做

小樊
34
2025-11-29 21:31:33
栏目: 智能运维

CentOS 磁盘清理实操指南

一 快速定位占用

  • 查看整体磁盘使用:执行命令:df -h,确认哪个挂载点(如 //var)占用高。
  • 分析目录占用:执行命令:du -sh / | sort -hr | head*,找出占用最大的目录。
  • 定位大文件:执行命令:find / -type f -size +100M -exec ls -lh {} ; 2>/dev/null,筛出大于 100MB 的文件(忽略权限错误)。
  • 可视化分析:安装并使用 ncdu(如:ncdu /),交互式查看并定位大目录/文件。

二 安全清理动作清单

  • 包管理器缓存
    • YUM:执行命令:sudo yum clean all
    • DNF(CentOS 8+):执行命令:sudo dnf clean all
  • 无用依赖与旧内核
    • 删除无用依赖:sudo yum autoremove
    • 删除旧内核(保留最新 1–2 个):sudo package-cleanup --oldkernels --count=1(或 –count=2)。
  • 临时文件
    • 手动清理:sudo rm -rf /tmp/ /var/tmp/**。
    • 使用 systemd-tmpfiles:sudo systemd-tmpfiles --clean(按配置清理过期临时文件)。
  • 日志文件
    • systemd 日志:sudo journalctl --vacuum-time=2weeks(保留最近 2 周,可按需改为 7d/30d)。
    • 轮转与压缩:确保 logrotate 正常运行,按日/周轮转并压缩旧日志。
  • 大文件与回收站
    • 按时间清理旧文件:sudo find /var/log -type f -name “*.log” -mtime +30 -delete(示例:删除 30 天前 的日志)。
    • 清空回收站:sudo rm -rf /home//.local/share/Trash/(对所有用户)
  • 可选:释放页面缓存(不影响磁盘数据,仅影响内存缓存)
    • 执行:sudo sync && echo 3 | sudo tee /proc/sys/vm/drop_caches(仅在必要时使用)。

三 按版本与场景补充

  • CentOS 7 vs 8+
    • CentOS 7:默认使用 YUM;清理命令以 yum clean allpackage-cleanup 为主。
    • CentOS 8+:使用 DNF;清理命令以 dnf clean all 为主,其他步骤基本一致。
  • 桌面环境
    • 图形化分析器:安装并使用 Baobab(磁盘使用分析器)快速定位大目录。
  • DNS 缓存
    • 如启用 systemd-resolved:执行 sudo systemd-resolve --flush-caches 清理 DNS 缓存。

四 自动化与风险控制

  • 定时清理临时文件(示例脚本 + cron)
    • 脚本示例:
      #!/bin/bash
      find /tmp -type f -mtime +7 -delete
      find /var/tmp -type f -mtime +7 -delete
      sudo yum clean all
      sudo dnf clean all 2>/dev/null || true
      sudo systemd-tmpfiles --clean
      
    • 加入计划任务:执行 sudo crontab -e,添加如:0 2 * * * /path/to/cleanup.sh
  • 操作要点
    • 执行 清理日志删除大文件 前,先确认业务是否依赖(如数据库、应用日志)。
    • 删除 旧内核 前,确认当前运行内核:uname -r,避免误删正在使用的内核。
    • 重要数据务必先备份,删除操作不可逆。

0