如何有效进行centos系统清理
导读:CentOS 系统清理与维护实操指南 一 核心清理清单 包管理器缓存 清理 YUM 缓存:sudo yum clean all 清理 DNF 缓存(CentOS 8+):sudo dnf clean all 临时文件 清理系统临时...
CentOS 系统清理与维护实操指南
一 核心清理清单
- 包管理器缓存
- 清理 YUM 缓存:sudo yum clean all
- 清理 DNF 缓存(CentOS 8+):sudo dnf clean all
- 临时文件
- 清理系统临时目录:sudo rm -rf /tmp/ /var/tmp/**
- 日志与 journal
- 查看占用:sudo du -sh /var/log/ | sort -h*
- 按时间保留 journal:sudo journalctl --vacuum-time=7d(保留最近 7 天)
- 按体积保留 journal:sudo journalctl --vacuum-size=500M
- 旧内核(谨慎)
- 安装清理工具:sudo yum install yum-utils
- 仅保留最新 1 个内核:sudo package-cleanup --oldkernels --count=1
- 大文件定位
- 全盘扫描:sudo du -sh / | sort -h*
- 查找大于 100MB 的文件:sudo find / -type f -size +100M -exec ls -lh { } ; 2> /dev/null
- 回收站
- 清空当前用户回收站:rm -rf ~/.local/share/Trash/files/ & & rm -rf ~/.local/share/Trash/info/*
二 进阶清理与瘦身
- 删除无用软件包
- 卸载指定包:sudo yum remove < package_name> 或 sudo dnf remove < package_name>
- 自动移除不再被依赖的包:sudo yum autoremove 或 sudo dnf autoremove
- 包管理器缓存目录
- 进一步释放:sudo rm -rf /var/cache/yum/ /var/cache/dnf/**
- 第三方工具
- 安装并使用 BleachBit:sudo yum install bleachbit & & sudo bleachbit
- 可选:清理内存页缓存(仅释放内存,不释放磁盘)
- 执行:sudo sync & & echo 3 | sudo tee /proc/sys/vm/drop_caches
- 可选:清理 Swap(会短暂影响性能)
- 执行:sudo swapoff -a & & sudo swapon -a
- 可选:清理 DNS 缓存(如使用 systemd-resolved)
- 执行:sudo systemd-resolve --flush-caches
- 可选:清理 core dump
- 执行:sudo find / -type f -name “core” -delete 2> /dev/null
三 安全操作与风险控制
- 操作前务必备份重要数据,清理命令涉及通配符与递归删除,误删可能导致系统不可用。
- 删除旧内核前,先确认当前启动内核:uname -r,确保至少保留 1 个可启动内核。
- 清理日志优先使用 journalctl --vacuum-time/size,避免直接 rm -rf /var/log 导致服务异常或日志轮转失效。
- 清理临时目录时避免跨文件系统误删挂载点内容;必要时使用 -xdev 限制 find 范围。
- 清理内存缓存与 Swap 仅用于临时缓解内存压力,不作为常规清理手段。
四 自动化与长期维护
- 定时清理临时文件
- 每日清理 systemd-tmpfiles:sudo crontab -e 添加
- 0 2 * * * /usr/bin/systemd-tmpfiles --clean --file=/etc/tmpfiles.d/*.conf
- 每日清理 systemd-tmpfiles:sudo crontab -e 添加
- 一键清理脚本(示例)
- 保存为 clean_disk.sh,执行 chmod +x clean_disk.sh & & sudo ./clean_disk.sh
- 脚本内容:
- #!/bin/bash echo “清理 YUM/DNF 缓存…” if command -v dnf & > /dev/null; then sudo dnf clean all; else sudo yum clean all; fi echo “清理 journal(保留 7 天)…” sudo journalctl --vacuum-time=7d echo “清理 /tmp 和 /var/tmp…” sudo rm -rf /tmp/* /var/tmp/* echo “清理 7 天前的旧日志…” sudo find /var/log -type f ( -name “.log" -o -name ".gz” ) -mtime +7 -delete echo “大日志文件仅清空(不删除)…” sudo find /var/log -type f -name ".log" -size +100M -exec truncate -s 0 { } ; echo “删除 core dump…” sudo find / -type f -name “core” -delete 2> /dev/null echo “清理用户缓存(谨慎)…” rm -rf ~/.cache/ ~/.npm/_cacache ~/.pip/cache/* echo “完成,当前磁盘使用:” df -h /
- 日常巡检
- 查看磁盘:df -h
- 查看目录占用:sudo du -sh /var/ | sort -h*
- 可视化分析:sudo yum install ncdu & & sudo ncdu /
五 场景化建议
- 日志增长过快
- 调整 /etc/logrotate.conf 与 /etc/logrotate.d/ 策略;优先用 journalctl --vacuum-time/size 控制 journal 体积。
- 容器环境(Docker)
- 定期执行:docker system prune -af --volumes(会删除停止的容器、悬挂镜像与无用卷,谨慎操作)。
- 开发环境
- 清理语言与构建缓存:rm -rf ~/.cache/*、~/.npm、~/.pip/cache;必要时清理 /tmp/npm-*。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 如何有效进行centos系统清理
本文地址: https://pptw.com/jishu/761453.html
