首页/系统/信创系统运维速查/磁盘空间查看(df/du)
命令与包管理65 条

磁盘空间查看(df/du)

空间排查成对使用:df 看文件系统整体用量与 inode,du 看目录级占用找大块头,配合排序快速定位增长来源。

信创系统运维速查系统更新于 2026-10-13

df 与 du 的分工

磁盘空间排查要成对使用这两个命令:df 站在文件系统视角,告诉你每个挂载点总量、已用、可用以及 inode 消耗情况;du 站在目录视角,逐层统计实际占用,用来自上而下找出是哪个目录在膨胀。只跑其中一个往往得出结论错误——比如 df 显示写满而 du 怎么都找不到大头,那通常是文件已删除但进程仍持有句柄。空间之外,inode 也是一种会被耗尽的资源,同样需要盯着。

基本信息

df 常用写法df -h 按可读单位,df -i 看 inode,df -T 带文件系统类型
du 常用写法du -sh 目录汇总,du -xh --max-depth=1 只看一层
排序技巧结果管道接排序与取头部,快速锁定大块头
跨文件系统du 加 -x 不跨挂载点,避免把挂载进去的目录算进来
权限提示非 root 下部分目录无法统计,可忽略报错但会低估占用

典型使用场景

  • 告警响应:收到磁盘使用率告警后先确认是哪个挂载点
  • 定位增长来源:从顶层目录逐层下钻,找出实际占用最大的目录
  • 清理前评估:确认可清理目录的规模,避免清错对象
  • 排查写入失败:应用报无法写入时先看是空间不足还是 inode 用尽
  • 交付巡检:记录各挂载点与 inode 使用率作为基线
  • 日志治理:确认日志目录占用,决定是否调整轮转策略

典型用法

典型用法
df -hT | grep -v tmpfs                        # 看各挂载点容量与类型
df -i / | tail -1                             # 看根分区 inode 使用情况
du -xh --max-depth=1 /var 2>/dev/null | sort -rh | head   # 找占用最大的子目录
du -sh /var/log /var/cache /home/* 2>/dev/null | sort -rh | head
du -xh --max-depth=1 /data 2>/dev/null | sort -rh | head -5
ls -lh /var/log/myapp/ | head                 # 再看具体文件大小

df 输出逐列读法

列含义异常特征
Filesystem设备或挂载源结合挂载点确认对应哪块盘
Size该文件系统总容量与预期不符说明分区规划有偏差
Used / Avail已用与可用可用接近零时需要立即处理
Use%使用率长期高位应做容量规划
Mounted on挂载点定位到具体目录
IUse%(df -i)inode 使用率接近满时有空间也写不了文件
df 显示写满但 du 找不到对应文件时,按「已删除但仍被进程占用」排查:进程持有句柄时空间不会释放,常见于日志文件被直接删除。找到持有进程后重启或让其重开文件即可回收空间。
内存文件系统不计入磁盘占用,但它会占用内存,容量异常时要在同一张表里一并核对。inode 用尽的表现和磁盘写满很像,两者都报写入失败,必须分别用容量与 inode 两个视角确认。

易错点

  • 只删文件不重启持有进程,空间看起来没释放,误判为清理无效
  • du 不加跨文件系统限制,统计结果把挂载进来的网络存储也算进去,结论失真
  • 把 inode 用尽当成空间不足处理,清理大文件没有效果,真正原因是海量小文件
  • 用没有权限的账号统计目录占用,报错被忽略后得出占用很小的错误结论

数据来源与参考

  • GNU coreutils 手册
  • 运维实践
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌