首页/系统/Linux 运维命令速查/场景:磁盘满的 5 步排查法
本包目录(613 条)
文件与目录76 条文本处理77 条网络命令82 条进程与作业69 条
磁盘与文件系统51 条
用户与权限44 条日志与排查40 条systemd 与服务42 条包管理34 条性能与监控48 条定时任务与计划50 条

场景:磁盘满的 5 步排查法

线上告警磁盘使用率 95%+,按这套顺序逐步定位到具体目录/文件/进程,避免无头绪乱删。

Linux 运维命令速查系统更新于 2026-10-12
场景根分区或数据盘容量告急
目标定位真实占用者并安全释放空间
工具链df → du → find → lsof → 处置

第 1 步:确认哪个挂载点满

第 1 步:确认哪个挂载点满
df -hT

第 2 步:逐层定位大目录

第 2 步:逐层定位大目录
du -x -h --max-depth=1 / | sort -rh | head -n 12
# 对最大目录继续下钻:
du -x -h --max-depth=1 /var | sort -rh | head -n 12

第 3 步:找大文件(不跨文件系统)

第 3 步:找大文件(不跨文件系统)
find / -xdev -type f -size +1G -printf '%s %p\n' 2>/dev/null | sort -rn | head -n 20

第 4 步:检查已删除未释放

第 4 步:检查已删除未释放
lsof +L1 2>/dev/null | awk '$7>1000000000 {print}' | head

第 5 步:处置

第 5 步:处置
# 日志类:截断而非删除(保留句柄)
: > /var/log/huge.log
# 已删除句柄:重启持有进程
systemctl restart app.service
不要直接 rm 正在写的日志:文件句柄仍占空间且应用可能继续向已删文件写入;用截断或让服务重开文件。

易错点

  • 只删最显眼的大文件不看持有者,常见结果:空间没释放还丢了日志证据
  • du 与 df 差异巨大时优先怀疑 deleted 句柄或容器 overlay 层,而不是继续找隐藏文件

数据来源与参考

  • GNU coreutils 手册(df/du/find)
  • man 8 lsof
  • Red Hat 知识库:How to find deleted files holding space

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌