Linux df下令详解,Linux检察磁盘利用情况

[复制链接]
发表于 2026-10-3 21:52:27 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×

磁盘满了第一反应就是敲 df -h,但同样是看磁盘,du 和 df 有时候能差出三十来兆,df 报 145M 而 du -sh 只有 113M——这不是看错了,是两个命令的统计口径根本不同。本文把 df 的参数、字段含义、自定义输出和"两者不一致"的成因一次讲透。

df 是什么

df(disk free)命令用来检查系统磁盘空间利用情况。常见参数:

  • -h:可读性,显示单元,换算单元 1024 字节。
  • -H:可读性,显示单元,换算单元 1000 字节。
  • -k:以 KB 为单元显示磁盘大小。
  • -m:以 MB 为单元显示磁盘大小。
  • --total:汇总。
  • -i:列出 inode 信息而非块使用量。
  • -T:显示文件系统类型。
  • -t:检查指定文件系统类型的磁盘利用情况,如 df -t tmpfs。
  • -x:检查除指定文件系统类型外的磁盘利用情况,即 -t 的反选。
  • -a:显示所有文件系统。

一、字段表明

不加参数默认显示所有磁盘占用情况,不显示单元。字段从左到右依次是:

  • Filesystem:磁盘使用的文件系统
  • 1K-blocks:磁盘的总内存,以 1K 为单位(1K=1024 字节)
  • Used:已使用的内存
  • Available:可用内存
  • Use%:磁盘使用百分比
  • Mounted on:磁盘文件系统的挂载点

二、显示单元

df -h 以容易阅读的格式显示大小单元,自动转换为 G(千兆字节)、M(兆字节)、K(千字节),也是工作中最常用的一种方式。

df -H 和 df -h 很像,不同的是,-h 每 1024 字节转化为 1KB,-H 每 1000 字节转化为 1KB。也就是 -h 按 2 的进制、-H 按 1000 的十进制,同一块盘显示出来会差那么一点。

df -k 以 K 为单元显示文件大小,但不显示单元,也就是默认的显示格式。df -m 以 M 为单元显示文件大小,同样不显示单元。

三、汇总显示

df --total 可以汇总磁盘的使用情况,在最下方插入一行,显示每一列的总和。

四、指定目录

检查指定目录的挂载点及所在磁盘的使用情况。比如 df -h /root 检查 /root 目录挂载到哪个磁盘及磁盘的使用情况。

五、指定显示字段

自定义结果输出的字段,字段名之间使用逗号分隔。例如只显示文件系统、使用百分比、挂载点这三个字段:

df --output=source,pcent,target

可选择的字段有:'source', 'fstype', 'itotal', 'iused', 'iavail', 'ipcent', 'size', 'used', 'avail', 'pcent', 'file' 和 'target'。

六、du 和 df 结果不一样

du 和 df 命令都可以检查磁盘利用情况,但有些时间两者的查询结果会不一样。比如:

df -h     # 显示 /boot 磁盘利用了 145M
du -sh /boot   # 进入 /boot 目录后显示只用了 113M

两者不同的原因在统计口径:

  • du 基于文件获取数据,可以跨分区。
  • df 基于分区的块信息获取数据,只能针对整个分区。

当用户删除文件后,du 将无法获取这些文件的数据。这个时间,如果还有进程持有被删除文件的句柄,文件就不会被真正的删除,分区的块信息就还保存文件信息,df 统计的时候也会算上这个文件的磁盘占用空间。

这种情况不会真的释放空间。lsof 可以检查这种被删除状态的文件,也就是 deleted 状态:

# 进入 /boot 目录
lsof | grep deleted

拿到 PID 之后 kill PID 结束进程或重启对应的服务,就会释放掉被删除文件的句柄。重启服务器也会结束进程,同样能释放掉被删除文件的句柄。

小结

df 用的时候记住这几个组合:df -h 日常看,df -T 想看清是不是 tmpfs 之类的特殊挂载(频繁读写但占空间小),df -h 目录 定位某个目录落在哪块盘,df --total 看全局合计。-h 和 -H 的区别只在进制,别写混。

遇到 df 说满、du 说没满的常见场景:删了大日志日志但进程没退(句柄还握着),先 lsof | grep deleted 找 PID,kill 或重启服务就回来了——这比再删一遍文件有效得多。另外 inode 耗尽也会让磁盘"写不进去"但 df -h 看空间还有,排查时 df -i 一起看。

qidao123.com企服评测-应用市场 编辑提示:本文为站点编辑整理的 Linux df 命令详解,命令与参数已按原意规范化书写;文中"-h/-H 进制差异""du 与 df 口径不同"均为可验证的通用行为;本站不提供任何磁盘工具下载或加好友服务。

回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表