怎样进行centos的全面清理
小樊
34
2025-12-13 16:17:12
CentOS 全面清理与维护指南
一 准备与注意事项
- 备份重要数据与配置文件,清理前确认无正在运行的关键业务。
- 全程使用具有 sudo 权限的账户,避免误删系统关键文件。
- 优先使用“安全清理”方式(如日志轮转、包管理器自带清理),避免粗暴删除正在写入的日志或运行中的临时文件。
- 清理后建议重启相关服务或系统,确保空间释放生效。
二 标准清理流程
- 包管理与软件
- 清理包管理器缓存:CentOS 7 使用 sudo yum clean all;CentOS 8+ 使用 sudo dnf clean all。
- 移除不再需要的依赖:sudo yum autoremove -y(或 dnf 对应命令)。
- 删除旧内核(保留最近 2–3 个,先确认当前内核):
- 查看当前内核:uname -r
- 安装工具:sudo yum install -y yum-utils
- 保留最近 2 个:sudo package-cleanup --oldkernels --count=2
- 临时文件
- 安全清理 /tmp 与 /var/tmp(避免删除正在使用的文件):
- 按时间清理:sudo find /tmp -type f -atime +7 -delete;sudo find /var/tmp -type f -atime +7 -delete
- 或使用系统服务:sudo systemctl run systemd-tmpfiles-clean.service(按 /etc/tmpfiles.d/ 配置清理)
- 日志与 journald
- 查看日志占用:sudo journalctl --disk-usage
- 按大小或时间清理:sudo journalctl --vacuum-size=500M;sudo journalctl --vacuum-time=7d
- 传统日志建议通过 logrotate 管理(自动轮换、压缩、删除),必要时仅清理已压缩的旧日志:sudo find /var/log -type f -name “*.gz” -delete
- 大文件与目录定位
- 快速查看一级目录占用:sudo du -sh / | sort -rh | head -n 10*
- 交互式分析工具:sudo yum install -y ncdu && sudo ncdu /(定位异常大文件/目录后再确认删除)
- 可选 内存缓存清理(仅当确需释放 PageCache/Dentry/Inode 时)
- 执行:sync && echo 3 | sudo tee /proc/sys/vm/drop_caches(值 1/2/3 分别对应页缓存、目录项与索引节点、全部;此操作仅为临时释放,内核会按需重新使用缓存)
三 进阶清理与空间回收
- 用户与应用残留
- 清理用户回收站:sudo rm -rf /home//.local/share/Trash/;rm -rf ~/.local/share/Trash/*
- 清理开发工具缓存:rm -rf /root/.composer/cache;rm -rf /root/.npm /home//.npm /home//.node-gyp /root/.node-gyp /tmp/npm-*
- 清理核心转储:find / -regex “.*/core.[0-9]+$” -delete 2>/dev/null
- 第三方清理工具
- 图形化/批量清理可用 BleachBit:sudo yum install -y bleachbit,在界面中勾选缓存、临时文件、浏览器缓存等(谨慎选择系统目录)
四 自动化与长期维护
- 定时清理临时文件
- 编辑 root 定时任务:sudo crontab -e
- 示例(每日清理临时文件):0 2 * * * /usr/bin/systemd-tmpfiles --clean --file=/etc/tmpfiles.d/*.conf
- 日志与缓存的常规维护
- 确保 logrotate 配置合理(位于 /etc/logrotate.conf 与 /etc/logrotate.d/),实现按日/周轮换与压缩。
- 定期(如每周)执行:yum clean all / dnf clean all、检查并清理旧日志、审视大文件增长趋势。
五 常见风险与排错
- 不要直接删除正在写入的日志文件(可能导致服务异常或日志损坏);使用 truncate -s 0 /var/log/xxx.log 或 journalctl 方式安全清理。
- 删除旧内核前务必确认当前运行内核:uname -r,避免误删导致无法启动。
- 清理 /tmp 与 /var/tmp 时避免粗暴 rm -rf /;优先用 find … -atime 或 systemd-tmpfiles-clean.service。
- 清理缓存(drop_caches)仅作临时手段,不能替代扩容或根因优化;若磁盘/内存问题频繁出现,应优先排查异常进程、日志暴增与存储增长趋势。