df命令
df(Disk Free)是Linux系统中用于查看文件系统磁盘空间使用情况的核心工具,可快速获取各挂载点的总空间、已用空间、空闲空间及使用率,同时显示文件系统类型和挂载路径,与du命令互补——df侧重文件系统整体空间监控,du侧重目录/文件级空间占用统计,是日常巡检、排查磁盘满溢问题的必备工具。
一、df命令基础使用
1.1 基本语法
# 基础用法:显示所有已挂载文件系统的空间使用情况(默认以KiB为单位)
df
# 完整语法
df [选项参数] [文件/目录路径]
说明:文件/目录路径可选,指定后将显示该文件/目录所在文件系统的空间信息;不指定则显示所有已挂载文件系统(含本地磁盘、虚拟文件系统、网络挂载等)。
1.2 核心选项参数
df命令选项简洁实用,核心用于切换单位、过滤输出内容、显示详细信息,常用选项如下:
# 单位切换选项(日常高频使用)
-h:以人类可读(Human-readable)格式显示,自动适配单位(B/KiB/MiB/GiB),推荐日常使用
-k:以千字节(KiB)为单位显示(默认)
-m:以兆字节(MiB)为单位显示
-g:以吉字节(GiB)为单位显示
-T:显示文件系统类型(如ext4、xfs、tmpfs),便于区分不同文件系统
-i:显示inode使用情况,而非磁盘空间(核心排查选项,inode满会导致无法创建文件)
# 过滤与显示优化选项
-a:显示所有文件系统,包括容量为0的虚拟文件系统(如/proc、sysfs,日常意义不大)
--total:在输出末尾添加总计行,汇总所有文件系统的空间使用情况
-x <文件系统类型>:排除指定类型的文件系统(如-x tmpfs,排除临时文件系统)
-t <文件系统类型>:仅显示指定类型的文件系统(如-t ext4,仅显示ext4格式的分区)
-P:以POSIX标准格式显示,避免不同系统输出格式差异,适合脚本解析
二、df命令输出界面解读
以最常用的 df -hT 命令为例(可读格式+显示文件系统类型),输出结果直观且包含核心信息,以下逐字段详细说明:
Filesystem Type Size Used Avail Use% Mounted on
/dev/vda1 ext4 40G 12G 26G 32% /
devtmpfs devtmpfs 7.8G 0 7.8G 0% /dev
tmpfs tmpfs 7.8G 0 7.8G 0% /dev/shm
tmpfs tmpfs 7.8G 8.6M 7.8G 1% /run
tmpfs tmpfs 7.8G 0 7.8G 0% /sys/fs/cgroup
/dev/vdb1 xfs 100G 45G 55G 45% /data
tmpfs tmpfs 1.6G 0 1.6G 0% /run/user/0
核心字段解读
Filesystem:文件系统对应的设备名或虚拟文件系统标识(本地磁盘如/dev/vda1,虚拟文件系统如devtmpfs);Type:文件系统类型(如ext4、xfs为本地常用格式,tmpfs为临时文件系统,nfs为网络挂载文件系统);Size:文件系统总容量(对应分区/文件系统的总空间);Used:已使用的磁盘空间(含文件、目录、日志等所有占用空间);Avail:可使用的空闲空间(非“总空间-已用空间”,需扣除预留空间,普通用户仅能使用此部分空间);Use%:磁盘空间使用率(核心监控指标,持续高于90%需警惕,接近100%会导致无法写入数据);Mounted on:文件系统的挂载点(即该分区/文件系统在系统中的访问路径,如/为根目录,/data为数据目录)。
inode使用情况解读(df -i)
执行 df -i 命令可查看inode使用情况,inode用于存储文件元信息(文件名、权限、创建时间等),inode满时即使磁盘有空闲空间也无法创建新文件,输出如下:
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/vda1 2.6M 130K 2.4M 5% /
/dev/vdb1 52M 4.5K 52M 1% /data
Inodes:文件系统总inode数量;IUsed:已使用的inode数量;IFree:空闲的inode数量;IUse%:inode使用率(核心指标,超过100%会导致无法创建文件,常见于大量小文件场景)。
三、df命令常用场景示例
3.1 日常快速查看磁盘空间(推荐)
df -hT # 可读格式+显示文件系统类型,快速掌握各挂载点空间使用情况
# 重点关注Use%和Avail字段,排查是否存在磁盘空间紧张问题
3.2 排查inode满导致的无法创建文件问题
df -i # 查看所有文件系统的inode使用情况
df -i /data # 仅查看/data目录所在文件系统的inode使用情况
# 若IUse%达到100%,需删除大量小文件释放inode
3.3 过滤显示指定类型的文件系统
df -hT -t ext4 # 仅显示ext4格式的文件系统
df -hT -x tmpfs # 排除tmpfs临时文件系统,聚焦本地磁盘
3.4 查看指定目录所在文件系统的空间信息
df -h /var/log # 查看/var/log目录所在文件系统的空间使用情况
# 适合针对性排查日志目录、数据目录的空间占用
3.5 汇总所有文件系统空间使用情况
df -h --total # 输出末尾添加总计行,汇总总容量、已用、空闲空间
# 适合汇报、文档记录服务器磁盘整体资源情况
3.6 脚本解析友好格式(POSIX标准)
df -P -k / # 以POSIX格式、KiB单位输出根目录文件系统信息
# 便于脚本提取字段(如通过awk提取使用率),避免格式差异导致解析错误
四、关键误区与注意事项
- 误区:Avail = Size - Used 实际Avail会扣除文件系统预留空间(通常为5%),预留空间仅root用户可使用,用于系统紧急操作(如删除文件释放空间)。普通用户看到的空闲空间为Avail,而非Size - Used,避免误以为有空闲空间却无法写入。
- 虚拟文件系统的干扰 df默认会显示tmpfs、devtmpfs等虚拟文件系统,这些文件系统基于内存创建,无实际磁盘占用,日常排查可通过
-x tmpfs排除,避免误判磁盘空间。 - 磁盘满溢的两种场景 磁盘无法写入数据分两种情况:一是空间满(Use%=100%),二是inode满(IUse%=100%),需分别用
df -h和df -i排查,避免只检查空间忽略inode。 - 挂载点变化的影响 若在挂载点目录下已有文件,挂载分区后原文件会被隐藏(仅卸载分区后可见),此时df显示的是挂载分区的空间,而非原目录文件占用,需注意区分避免误判。
- 与du命令的差异与配合 df显示文件系统整体空间,du显示目录/文件级占用,当两者数据不一致时(如df显示已用空间大,du统计值小),可能是存在已删除但被进程占用的文件,需通过
lsof | grep deleted排查并重启对应进程释放空间。 - 网络挂载文件系统的监控 对于NFS、CIFS等网络挂载的文件系统,df也可显示其空间信息,但可能存在延迟,若无法获取信息需检查网络连接和挂载配置。
五、补充说明
df命令是磁盘空间监控的基础工具,操作简单且输出直观,适合日常巡检和快速排查磁盘满溢问题;若需定位具体占用空间大的目录/文件,需结合du -sh *(统计目录大小)、find(查找大文件)等命令。此外,对于LVM(逻辑卷管理)分区,df显示的是逻辑卷的空间信息,可通过lvdisplay命令查看逻辑卷详细配置,便于后续扩容操作。

浙公网安备 33010602011771号