Linux磁盘空间如何排查_高频场景实战指导更易上手【指导】

Linux磁盘告警应先用df -h和df -i定位高占用挂载点及inode耗尽,再用du -sh * | sort -hr逐层查找大目录,接着用lsof +L1揪出已删未释放的大文件,最后按场景安全清理。

linux磁盘空间如何排查_高频场景实战指导更易上手【指导】

Linux磁盘空间告警?别急着删日志,先找准“真凶”。多数情况下,不是磁盘真的满了,而是某个目录悄悄吃掉了大量空间,或者有被删除但进程仍在写入的大文件占着 inode 不放。排查关键在分层定位 + 快速验证,下面按高频场景直给操作路径。

看整体:用 df 确认哪块设备真紧张

注意:df -h 显示的是挂载点空间,不是目录大小。先执行:

  • df -h —— 找出使用率超 85% 的挂载点(如 /、/var、/home)
  • df -i —— 检查 inode 是否耗尽(尤其 /var/log 或容器环境常见,即使磁盘空,inode 满也会报“no space left on device”)
  • 若 /dev/mapper/xxx 或 /dev/nvme0n1p2 这类设备使用率高,说明问题在该分区;若 /boot 使用率 100%,大概率是旧内核没清理

找大目录:用 du 定位空间“黑洞”

进到高负载挂载点下(比如 df 显示 /var 使用率高,就 cd /var),运行:

  • du -sh * | sort -hr | head -10 —— 查看当前层各子目录大小,从大到小排前 10
  • 发现某目录异常大(如 /var/log/journal、/var/lib/docker/overlay2),再进该目录重复上一步,逐层钻取
  • 快捷技巧:用 du -sh .[!.]* * 包含隐藏目录(如 .cache、.local)

揪隐形文件:已删除但未释放的大文件

某些进程(如 tail -f、rsyslog、j*a 应用)打开大文件后被 rm,但句柄未关,空间不释放。查法:

AI Word AI Word

一款强大的 AI 智能内容创作平台,致力于帮助用户高效生成高质量、原创且符合 SEO 规范的各类文章。

AI Word 226 查看详情 AI Word
  • lsof +L1 —— 直接列出所有已链接数为 0(即被删但仍被占用)的文件
  • lsof -nP | grep deleted | awk '{print $7,$9}' | sort -nr | head -5 —— 按大小倒序看前 5 个被删大文件
  • 确认后,可重启对应进程释放空间(如 systemctl restart rsyslog),或直接 kill -HUP 进程 PID(谨慎操作)

清缓存/旧物:安全释放空间的实操建议

定位到目标后,别盲目 rm -rf。优先选低风险方式:

  • /var/log/:用 journalctl --disk-usage 看 journald 占用,再用 journalctl --vacuum-size=200M 保留最近 200MB 日志
  • /var/cache/apt/archives/(Debian/Ubuntu):运行 apt clean
  • /var/lib/docker/:确认无用镜像/容器后,用 docker system prune -a --volumes(注意加 --volumes 会删卷)
  • 旧内核(/boot):用 dpkg --list 'linux-image-*' | grep ^ii | awk '{ print $2 }' | sort -V | sed -n '/'$(uname -r)'!p' | xargs apt purge -y(Ubuntu/Debian)

基本上就这些。排查顺序记住:df 定范围 → du 找目录 → lsof 查残留 → 清理讲方法。不复杂但容易忽略细节,动手前多看一眼,少踩一半坑。

以上就是Linux磁盘空间如何排查_高频场景实战指导更易上手【指导】的详细内容,更多请关注其它相关文章!

本文转自网络,如有侵权请联系客服删除。