怎样进行centos深度清理
小樊
44
2025-11-16 00:02:49
CentOS 深度清理实操指南
一 准备与风险
- 备份重要数据与配置文件,优先在测试环境验证命令效果。
- 全程使用具有 sudo 权限的账户,避免误删系统关键文件。
- 清理会释放磁盘空间,但可能影响审计与排障;生产环境建议选择低峰时段并保留必要日志。
二 标准清理流程
- 包管理与缓存
- 清理包管理器缓存:sudo yum clean all(CentOS 8+/Stream 可用 sudo dnf clean all)。
- 移除无用依赖:sudo yum autoremove(或 sudo dnf autoremove)。
- 卸载不再需要的软件包:sudo yum remove <package_name>(或 sudo dnf remove <package_name>)。
- 临时文件
- 清理临时目录:sudo rm -rf /tmp/ /var/tmp/*;执行前确认无关键进程占用 /tmp(必要时可先排查并终止相关进程)。
- 日志与 journald
- 按时间清理 systemd 日志:sudo journalctl --vacuum-time=2weeks(可按需改为 3d/1month)。
- 如需手动处理日志文件,优先使用 truncate -s 0 /var/log/ 截断,避免粗暴删除正在写入的日志文件;必要时再清理 /var/log/ 下历史归档。
- 旧内核
- 列出内核:rpm -q kernel。
- 保留最新 2 个内核并删除其余:sudo package-cleanup --oldkernels --count=2(确保至少保留一个可启动内核)。
- 大文件与目录定位
- 全局占用概览:df -h;目录占用:du -sh / | sort -h*。
- 查找大文件:sudo find / -type f -size +100M -exec ls -lh {} ;(先确认再删除)。
- 交互式分析器:sudo yum install -y ncdu && sudo ncdu /(便于精准定位与选择性删除)。
三 进阶清理与维护
- 清理孤立/无用包
- 识别孤立包:package-cleanup --quiet --leaves --exclude-bin。
- 批量移除:package-cleanup --quiet --leaves --exclude-bin | xargs yum remove -y(删除前逐条确认)。
- 清理包管理器残留与仓库
- 移除不再使用的软件仓库:检查并清理 /etc/yum.repos.d/ 下不需要的 .repo 文件。
- 用户与回收站
- 清理用户回收站:sudo rm -rf /home/*/.local/share/Trash/(多用户环境逐用户执行或写成脚本遍历)。
- 删除不再使用的用户/组:sudo userdel 、sudo groupdel (谨慎,确保无业务关联)。
- 可选图形化工具
- 安装并使用 BleachBit:sudo yum install -y bleachbit && sudo bleachbit(桌面环境或需清理用户缓存/浏览器缓存时更便捷)。
- 内存与 Swap(非磁盘清理,谨慎)
- 释放页面缓存(不影响文件):sudo sync && echo 3 | sudo tee /proc/sys/vm/drop_caches。
- 重建 Swap(仅在磁盘空间紧张且允许短暂性能下降时):sudo swapoff -a && sudo swapon -a。
四 自动化与排错建议
- 日志轮转
- 使用 logrotate 定期压缩与清理旧日志:sudo logrotate -f /etc/logrotate.conf;确保 /etc/logrotate.d/ 下各应用的配置合理(如按日/周轮转与保留份数)。
- 定时清理脚本
- 将常用清理项(如 journald 保留策略、临时目录清理、YUM/DNF 缓存清理)加入 cron(如每周日凌晨执行),并在脚本开头做 df/du 快照与日志记录,便于回溯。
- 空间仍不足时
- 复核 /var/lib/docker(如使用 Docker)、/var/lib/mysql、/opt、/home 等业务数据分区;必要时扩容磁盘或迁移数据目录。