Linux磁盘空间如何排查_完整流程拆解让问题迎刃而解【技巧】

admin 百科 12
登录服务器后先用 df -h 查看各挂载点使用率,重点关注 Use% 超 98% 的分区(如 / 或 /var),再用 df -i 检查 inode 是否耗尽;接着用 du 和 find 分层定位大目录和大文件,注意隐藏文件;若删除后空间未释放,用 lsof +L1 查找被进程占用的已删文件;清理优先 truncate、压缩或 logrotate,避免直接 rm;长期需配置日志轮转和定期清理脚本。

Linux磁盘空间如何排查_完整流程拆解让问题迎刃而解【技巧】-第1张图片-佛山资讯网

先看哪块盘满了

登录服务器后第一件事不是乱翻文件,而是用 df -h 快速确认哪个挂载点使用率超标。重点关注 Use% 列,比如显示 98%100% 的分区(常见是 //var)。如果看到 tmpfsdevtmpfs 占用高不用管——它们是内存虚拟文件系统,不占真实磁盘。

顺手加个 df -i,检查 inode 是否耗尽。有些场景磁盘空间还有余量,但因生成了海量小文件(如日志碎片、缓存临时文件),导致 IUse% 达到 100%,这时 touch 新文件或写日志会失败,但 df -h 看不出异常。

定位“真凶”目录和文件

找到问题分区后,进入该挂载点(比如 cd /),用以下命令分层缩小范围:

  • 查一级子目录总大小du -sh * 2>/dev/null | sort -hr | head -20 —— 快速看出谁最吃空间,比如 /var 占 35G,/home 占 2G
  • 进大目录继续深挖cd /var && du -sh * 2>/dev/null | sort -hr | head -10 —— 很可能发现 /var/log/var/lib/docker 是元凶
  • 找具体大文件find /var/log -type f -size +100M -exec ls -lh {} \; —— 直接列出所有超 100MB 的日志文件
  • 别漏隐藏文件du -ah --max-depth=1 . | sort -rh | head -15 —— -a 包含点开头的隐藏项,有时 .cache.local/share 暗藏巨无霸

注意“删了也白删”的陷阱

执行 rmdf -h 空间没释放?大概率是文件已被删除,但仍有进程在读写它,系统无法真正回收空间。

用这两个命令验证:

标签: linux java centos node docker nginx app ubuntu

发布评论 0条评论)

还木有评论哦,快来抢沙发吧~