Linux磁盘空间如何排查_最佳实践总结助你快速突破【技巧】

2次阅读

磁盘空间告警时应按“df→du→find→lsof→清理”顺序排查:先用df -h定位满载分区,再用du -sh逐级筛查大目录,接着用find查找大文件和日志,通过lsof +L1识别已删未释放文件,最后针对性清理日志、缓存等。

Linux磁盘空间如何排查_最佳实践总结助你快速突破【技巧】

磁盘空间告警一响,别急着删文件。先找准“真凶”,再动手,才能既快又稳不翻车。

第一步:看清哪块盘真满了

df -h 快速扫一遍所有挂载点,重点关注 Use% 列:

  • 数值接近或达到 100% 的分区,就是主战场(比如 /dev/sda1 100% /
  • 注意区分:/var/lib/docker/overlay2 占满 ≠ 容器数据多,可能是日志没限流或镜像残留
  • 若发现 tmpfs/dev/shm 高占用,通常是内存映射异常,不是磁盘问题

第二步:顺藤摸瓜找大目录

锁定满的挂载点(如 /)后,从顶层往下筛:

  • sudo du -sh /* 2>/dev/NULL | sort -hr —— 看根下谁最大(常见嫌疑:/var、/home、/data)
  • 进到大目录里继续挖:cd /var && sudo du -sh * 2>/dev/null | sort -hr
  • 想省力又全面?加 --max-depth=2 一步看到二级子目录:sudo du -h --max-depth=2 /var | sort -hr | head -n 15

第三步:揪出具体的大文件

目录定位清楚后,直接搜文件更高效:

Linux磁盘空间如何排查_最佳实践总结助你快速突破【技巧】

腾讯AI 开放平台

腾讯AI开放平台

Linux磁盘空间如何排查_最佳实践总结助你快速突破【技巧】 381

查看详情 Linux磁盘空间如何排查_最佳实践总结助你快速突破【技巧】

  • 查大于 500MB 的文件:find / -xdev -type f -size +500M 2>/dev/null -exec du -h {} ; | sort -hr | head -n 10
  • 专盯日志:find /var/log -name "*.log*" -size +100M 2>/dev/null
  • 别漏掉“已删但未释放”的文件:lsof +L1lsof | grep deleted,找到 PID 后重启对应服务即可腾空间

第四步:安全清理不踩坑

清理前先确认类型,再选合适方式:

  • 日志文件:优先 sudo truncate -s 0 /path/to/huge.log(清空不删),或用 journalctl --vacuum-size=200M 控制 systemd 日志
  • 临时文件:/tmp 下可删旧文件:find /tmp -type f -mtime +7 -delete
  • docker 日志:全局限制写入 /etc/docker/daemon.json"log-opts": {"max-size": "10m", "max-file": "3"}
  • 包缓存ubuntuapt cleancentosyum clean all,Snap 用户别忘 rm -rf /var/cache/snapd/

基本上就这些。顺序不能乱:看 df → 挖 du → 找 find → 查 lsof → 再清理。熟练了,5 分钟内定位+释放不是难事。

text=ZqhQzanResources