df -h 是最快速可靠的磁盘使用率初筛方式,重点关注 use% 是否≥阈值(如80%);需同步用 df -i 排查 inode 耗尽;脚本应使用 df -p | awk '$5+0>80' 自动判断;注意已删除未释放文件和跨文件系统挂载干扰。

直接用 df -h 查看各分区使用率,重点关注 Use% 列是否达到或超过预设阈值(如 80%)。这是最快速、最可靠的初筛方式。
1. 快速定位超限分区
运行命令:
df -h
输出中每行末尾的 Use% 值就是该挂载点的磁盘使用百分比。例如:
/dev/sda1 39G 3.3G 34G 9% /
/dev/sdb1 1.8T 1.5T 280G 84% /data
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
只要任一 Use% ≥ 阈值(如 84% ≥ 80%),就说明该分区已超限。
注意:不要只看 Avail(可用空间)数值,有些系统保留 5% 空间给 root,Use% 才是真实负载指标。
2. 排除 inode 耗尽干扰
磁盘空间未满但报 “No space left on device”,很可能是 inode 耗尽。需同步检查:
- df -i:查看各分区 IUse% 是否接近 100%
- 若 IUse% 高而 Use% 低,说明存在大量小文件(如日志碎片、邮件队列、Docker overlay 文件),此时清理大文件无效,应定位并删除海量小文件
3. 自动化判断是否超阈值(Shell 脚本核心逻辑)
真正用于监控的不是人工看,而是脚本自动提取数值并比较。关键步骤如下:
- 用 df -P | awk '$5+0 > 80 {print $1, $5}' 提取所有使用率超 80% 的分区和百分比
- 避免解析表头干扰,-P 参数保证输出格式稳定(POSIX 标准)
- 加 +0 是为强制 awk 将字符串转为数字,防止 “80%” 被当文本比较出错
- 对关键挂载点(如 /、/var、/data)可单独检查:df -h / | awk 'NR==2 {gsub(/%/,"",$5); if ($5 > 80) print "ALERT: / is at "$5"%"}'
4. 注意两类“假性正常”情况
即使 df -h 显示未超阈值,也不能完全排除风险:
- 已删除但未释放的空间:文件被 rm,但进程仍在写入(如 tail -f 日志),lsof +L1 可列出这类“deleted”条目
- 跨文件系统挂载干扰:比如 /home 是独立分区,但 du 统计 / 时会跳过它;df 按分区统计,永远是最权威的依据










