温馨提示×

Linux清理指南:专家分享实用技巧

小樊
43
2025-12-23 01:58:48
栏目: 智能运维

Linux清理指南 专家实用技巧

一 快速定位占用

  • 使用 df -h 查看各挂载点使用率,优先关注使用率接近或超过 80% 的分区。
  • 使用 du -sh /path 查看目录总大小;结合 sort -h 定位最大目录,例如:
    • 当前目录前10大项:du -sh * | sort -rh | head -n 10
    • 全盘逐级排查:sudo du -h / 2>/dev/null | sort -h | tail -n 50
  • 交互式分析工具:安装并使用 ncdu(命令行)或 baobab(GNOME 磁盘使用分析器)快速发现“空间大户”。

二 安全清理核心步骤

  • 临时文件
    • 清理 /tmpsudo rm -rf /tmp/*(系统运行中请谨慎,避免删除正在使用的会话文件)。
    • 清理 /var/tmpsudo rm -rf /var/tmp/*(该目录通常保留时间更长,建议先确认)。
    • 定时清理旧临时文件(更安全):tmpwatch 240 /tmp(删除 240 小时未访问的文件)。
  • 包管理器缓存
    • APT(Debian/Ubuntu):sudo apt-get clean && sudo apt-get autoclean
    • YUM(CentOS/RHEL):sudo yum clean all
    • DNF(Fedora):sudo dnf clean all
  • 日志与 journal
    • 保留最近 3 天 的 systemd 日志:sudo journalctl --vacuum-time=3d
    • 归档并轮转日志:sudo journalctl --rotate
    • 如需清理 journal 目录,请先停止 journal 服务,再删除过期子目录,最后重启服务(避免正在写入时直接删除)。
  • 系统缓存(仅当内存紧张或测试需要)
    • 写入前先同步:sync
    • 释放页面缓存:echo 1 | sudo tee /proc/sys/vm/drop_caches
    • 释放目录项和 inode 缓存:echo 2 | sudo tee /proc/sys/vm/drop_caches
    • 释放全部三类缓存:echo 3 | sudo tee /proc/sys/vm/drop_caches
  • 浏览器与应用缓存
    • Chrome:rm -rf ~/.config/google-chrome/Default/Cache/*
    • Firefox:rm -rf ~/.mozilla/firefox/*.default-release/cache2/*
  • 下载与用户目录
    • 清理大且过期的下载:rm -rf ~/Downloads/*.old 或按时间清理:find ~/Downloads -mtime +30 -delete
  • 图形化工具
    • 使用 BleachBit 清理系统缓存、临时文件、浏览器缓存等:sudo apt-get install bleachbit && sudo bleachbit

三 深度清理与维护

  • 删除无用依赖与旧内核
    • APT:sudo apt-get autoremove --purge
    • YUM:sudo yum autoremove
    • DNF:sudo dnf autoremove
    • 清理旧内核(RHEL/CentOS 系):package-cleanup --oldkernels --count=2(仅保留最近 2 个内核)。
  • 大文件定位与处置
    • 查找大于 100MB 的文件:sudo find / -type f -size +100M -exec ls -lh {} \;(先确认再删除)。
    • 删除 30 天 未修改的大文件:find /var -size +100M -mtime +30 -delete
  • 旧备份与归档
    • 删除 30 天 前的备份:find /backup -type f -mtime +30 -delete
  • 日志轮转策略
    • 使用 logrotate 配置按周轮转并压缩,保留 4 周:/etc/logrotate.d/messages
      • 示例:
        • weekly、rotate 4、compress、delaycompress、missingok、notifempty、create 640 root adm
      • 手动执行:logrotate /etc/logrotate.d/messages

四 自动化与风险控制

  • 定时清理脚本与 cron
    • 示例脚本(按日执行):
      • #!/bin/bash
        sync
        sudo journalctl --vacuum-time=3d
        sudo apt-get clean && sudo apt-get autoclean
        find /tmp -mindepth 1 -mtime +1 -delete
    • 加入 cron(每日 2:00):0 2 * * * /path/to/cleanup.sh
  • 操作原则
    • 备份重要数据;分阶段清理;删除前确认文件来源与用途;优先使用“轮转/归档”而非粗暴删除;对线上系统先在测试环境验证脚本。
  • 风险提示
    • rm -rfjournalctl --vacuum-*drop_caches 等命令可能造成数据不可恢复或服务异常;生产环境请在维护窗口操作,并确保有回滚方案。

0