怎样用centos清理系统垃圾
小樊
40
2025-12-31 07:08:26
CentOS 清理系统垃圾的实用步骤
一 准备与定位
- 查看磁盘占用,确定清理目标:执行命令:df -h。重点关注占用高的分区(如 /、/var)。
- 分析目录体积,找出“大头”:执行命令:du -sh * | sort -rh | head -n 10,进入占用大的目录继续定位。
- 查找大文件(谨慎操作):执行命令:find / -type f -size +500M -exec ls -lh {} ;,确认无用后再删除。
- 图形化辅助(有桌面环境时):可用 BleachBit 或 GNOME Disk Utility 做可视化清理。
以上步骤有助于快速定位空间占用来源,避免盲目删除。
二 标准清理流程
- 包管理与缓存
- 清理 YUM 缓存:sudo yum clean all。
- CentOS 8+/Stream 使用 DNF:sudo dnf clean all。
- 删除无用依赖:sudo yum autoremove。
- 删除旧内核(保留最近 2 个):sudo package-cleanup --oldkernels --count=2。
- 临时文件
- 清理系统临时目录:sudo rm -rf /tmp/;sudo rm -rf /var/tmp/。
- 日志文件
- 轮转并自动清理:确保 logrotate 已启用并正确配置(推荐方式)。
- 手动清理示例:截断超大日志(>50M 且 >7 天,或 >30 天):
find /var/log -name “*.log” ( ( -size +50M -mtime +7 ) -o -mtime +30 ) -exec truncate {} --size 0 ;
删除过旧日志:find /var/log -type f -name “*.log” -mtime +30 -exec rm -f {} ;。
- 内存缓存(仅释放 PageCache/Dentry/Inode,不会释放已用内存给应用程序)
- 执行:sync && echo 3 | sudo tee /proc/sys/vm/drop_caches(需要 root)。
- 回收站
- 清理当前用户回收站:**rm -rf ~/.local/share/Trash/files/;rm -rf ~/.local/share/Trash/info/。
- 清理所有用户回收站:**sudo rm -rf /home//.local/share/Trash/。
- 可选:开发环境缓存
- Composer:rm -rf /root/.composer/cache。
- Node.js:rm -rf /root/.npm /home//.npm /root/.node-gyp /home//.node-gyp /tmp/npm-*。
- 核心转储
- 删除 core 文件:find / -regex “.*/core.[0-9]+$” -delete(确认业务无调试需求后再删)。
以上为常用且相对安全的清理动作,建议按顺序执行。
三 进阶定位与清理
- 交互式分析大目录体积:安装并使用 ncdu(示例:sudo yum install ncdu;sudo ncdu /),快速定位异常增长目录。
- 邮件队列/邮件文件(如运行邮件服务):检查并清理 /var/mail 或 /var/spool/mail 下无用邮件。
- 旧备份与归档:定期清理过期备份、压缩包与镜像,避免长期堆积。
- 定时维护:将日志轮转与周期性清理加入 cron,实现自动化维护。
这些手段适合定位“隐形占用”和建立长期维护机制。
四 注意事项与排错
- 不要直接清空 /var/log 整个目录,优先用 logrotate 或按文件截断/删除,避免影响正在写入的日志服务。
- 执行 rm -rf 前务必确认路径与作用,建议先用 ls/du 核验;生产环境可先在测试环境演练。
- 清理缓存(drop_caches)不会提升可用内存上限,仅在特殊场景用于释放可回收缓存;日常无需频繁执行。
- 删除旧内核前,确保至少保留 1–2 个可启动内核,避免无法启动;可通过 uname -r 查看当前运行内核。
- 清理回收站时覆盖所有用户目录(如 /home/*/.local/share/Trash),避免遗漏。
- 重要数据请先备份,再执行清理操作。
以上做法可降低误操作风险,确保系统稳定。