- 首页 >
- 问答 >
-
智能运维 >
- centos cleanup如何提高磁盘利用率
centos cleanup如何提高磁盘利用率
小樊
36
2025-12-17 15:17:57
CentOS 清理与磁盘利用率优化
一 快速定位占用
- 查看整体使用:使用命令:df -h,快速识别已用空间接近满的分区(如 /、/var)。
- 定位大目录:使用命令:du -h --max-depth=1 / | sort -rh,逐层下钻到具体高占用目录。
- 交互式分析:安装并使用 ncdu(如:sudo yum install -y ncdu && sudo ncdu /),直观查看与删除大文件/目录。
- 检查日志占用:使用命令:journalctl --disk-usage,确认 journald 日志是否异常增长。
二 安全清理核心步骤
- 包管理器缓存
- YUM:执行 sudo yum clean all;移除无用依赖:sudo yum autoremove。
- DNF(若为 CentOS 8+/Stream):执行 sudo dnf clean all;移除无用依赖:sudo dnf autoremove。
- 旧内核(谨慎)
- 安装工具:sudo yum install -y yum-utils。
- 查看当前运行内核:uname -r。
- 仅保留最新 2 个内核:sudo package-cleanup --oldkernels --count=2(确保当前内核不在删除范围内)。
- 日志与临时文件
- systemd 日志:限制大小 sudo journalctl --vacuum-size=500M;限制时间 sudo journalctl --vacuum-time=7d。
- 传统日志轮转:检查并优化 /etc/logrotate.conf 与 /etc/logrotate.d/ 的策略(按周/日轮转、压缩、保留份数)。
- 临时文件:优先使用 systemd-tmpfiles-clean.service(由系统按计划清理);如需手工清理,按“find /tmp -type f -atime +7 -delete”与“find /var/tmp -type f -atime +7 -delete”方式删除 7 天前未访问文件,避免直接粗暴清空正在使用的临时文件。
- 大文件与用户回收站
- 查找大文件:sudo find / -type f -size +100M -exec ls -lh {} ;(先确认再删除)。
- 清空回收站:sudo rm -rf /home//.local/share/Trash/。
三 进阶清理与注意事项
- 容器环境(如部署了 Docker)
- 查看占用:docker system df。
- 清理无用资源:docker system prune(加 -a 一并清理未使用镜像;加 –volumes 清理无用卷)。
- 可选的性能相关操作(非“释放磁盘空间”)
- 释放内存页缓存:仅在必要时执行 sync && echo 3 | sudo tee /proc/sys/vm/drop_caches;通常无需手动清理,系统会自动管理。
- 重建 Swap 空间:sudo swapoff -a && sudo swapon -a(仅在 Swap 使用异常或需迁移时考虑)。
- 安全原则
- 不要直接删除正在写入的日志文件;优先使用 logrotate 或 journalctl 的轮转/截断功能。
- 删除前先备份重要数据;对生产环境变更建议先在测试环境验证。
四 自动化与长期维护
- 建立例行巡检:将 df -h、journalctl --disk-usage、ncdu 纳入每周巡检,提前发现异常增长。
- 配置 logrotate:为高频日志服务(如 nginx、messages、自定义应用)设置合理的轮转周期、压缩与保留份数,避免无限增长。
- 启用 systemd-tmpfiles-clean.timer:按周期自动清理 /tmp 与 /var/tmp,减少手工清理风险。
- 内核保留策略固化:在 /etc/yum.conf 中设置 installonly_limit=2(或合适值),使新内核安装时自动淘汰旧内核,避免 /boot 被占满。