Linux磁盘空间如何排查_高频场景实战指导更易上手【指导】_技术学院_宜昌市隼壹珍商贸有限公司

您好,欢迎访问宜昌市隼壹珍商贸有限公司

400 890 5375
当前位置: 主页 > 新闻动态 > 技术学院

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

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

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、java 应用)打开大文件后被 rm,但句柄未关,空间不释放。查法:

  • 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 查残留 → 清理讲方法。不复杂但容易忽略细节,动手前多看一眼,少踩一半坑。

全国统一服务电话

400 890 5375

电子邮箱:879577@qq.com

公司地址:宜昌市西陵区黄河路5号三峡明珠10栋1051室

咨询微信

TEL:13680874598