温馨提示×

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 使用异常或需迁移时考虑)。
  • 安全原则
    • 不要直接删除正在写入的日志文件;优先使用 logrotatejournalctl 的轮转/截断功能。
    • 删除前先备份重要数据;对生产环境变更建议先在测试环境验证。

四 自动化与长期维护

  • 建立例行巡检:将 df -hjournalctl --disk-usagencdu 纳入每周巡检,提前发现异常增长。
  • 配置 logrotate:为高频日志服务(如 nginxmessages、自定义应用)设置合理的轮转周期、压缩与保留份数,避免无限增长。
  • 启用 systemd-tmpfiles-clean.timer:按周期自动清理 /tmp/var/tmp,减少手工清理风险。
  • 内核保留策略固化:在 /etc/yum.conf 中设置 installonly_limit=2(或合适值),使新内核安装时自动淘汰旧内核,避免 /boot 被占满。

0