df (disk free) 是 AIX 系统管理员和用户最常用的命令之一,用于显示文件系统的磁盘空间使用情况,了解如何使用 df 对于系统性能监控、容量规划和故障排查至关重要。

基本用法和常用选项
df 命令的基本格式是 df [选项] [文件系统|目录]。
如果不带任何参数运行 df,它会列出所有已挂载(mounted)的文件系统及其空间使用情况。
常用选项
| 选项 | 全称 | 描述 | 示例 |
|---|---|---|---|
-k |
kilobytes |
默认选项,以 KB (千字节) 为单位显示大小。 | df -k / |
-g |
gigabytes |
以 GB (吉字节) 为单位显示大小,非常适合快速查看大容量文件系统。 | df -g /home |
-m |
megabytes |
以 MB (兆字节) 为单位显示大小。 | df -m /var |
-v |
AIX 特有选项,显示更详细的文件系统信息,包括文件系统类型、日志状态、是否可压缩等。 | df -v / |
|
-i |
inodes |
显示 inode 的使用情况,而不是磁盘块,当磁盘空间未满但提示 No space left on device 时,通常是因为 inode 耗尽。 |
df -i / |
-t |
type |
只显示指定类型的文件系统。 | df -t jfs2 / (只显示 jfs2 类型的文件系统) |
-u |
used |
显示已用空间和可用空间,而不是总空间和使用百分比。 | df -u / |
-l |
local |
只显示本地文件系统,不显示 NFS 等远程文件系统。 | df -l |
-P |
portability |
使用 POSIX 格式输出,每行一个条目,字段固定,这对于脚本编程非常有用。 | df -P |
输出字段详解
标准的 df -k 输出包含以下几个字段:
$ df -k /
Filesystem 512-blocks Used Available %Used Mounted on
/dev/hd4 524288 327680 196608 63% /
- Filesystem: 文件系统的名称,通常是设备文件路径(如
/dev/hd4)或 NFS 路径(如server:/export/data)。 - 512-blocks: 文件系统的总大小,以 512 字节的块为单位,要换算成 KB,需要除以 2,524288 * 512 bytes = 268,435,456 bytes = 268,435 KB ≈ 262 MB。
- Used: 已使用的空间,同样以 512 字节的块为单位。
- Available: 可用空间,以 512 字节的块为单位。
- %Used: 已使用空间占总空间的百分比,这是判断磁盘是否紧张的关键指标。
- Mounted on: 文件系统的挂载点。
实用示例
示例 1:以 GB 为单位查看根文件系统
这是最常用的方式之一,可以快速了解根分区的使用情况。

$ df -g / Filesystem GB blocks Used Available %Used Mounted on /dev/hd4 0.25 0.16 0.09 63% /
这里 25 GB 256 MB。
示例 2:查看所有 NFS 文件系统
使用 -t nfs 选项可以过滤出所有 NFS 文件系统。
$ df -t nfs Filesystem 512-blocks Used Available %Used Mounted on nfs_server:/data 104857600 41943040 62914560 40% /mnt/nfs_data
示例 3:检查 inode 使用情况
当系统提示空间不足,但 df 显示还有大量可用空间时,就应该检查 inode。
$ df -i / Filesystem Inodes IUsed IFree %IUsed Mounted on /dev/hd4 131072 65536 65536 50% /
%IUsed 接近 100%,说明文件系统中有大量的小文件,需要清理。

示例 4:使用 AIX 特有的 -v 选项获取详细信息
df -v 提供了非常丰富的信息,对于排查问题非常有帮助。
$ df -v /
Filesystem 512-blocks Used Available %Used Mounted on
/dev/hd4 524288 327680 196608 63% /
Total bytes = 268435456
Free bytes = 100663296
. .
. (中间省略部分输出) .
. .
Log = /dev/hd8
Version = 4.2
Size = 268435456
Space = 100663296
Aggregate = yes
Compressed = no
User Quotas = no
Group Quotas = no
Journal = yes
从 -v 的输出中,你可以看到:
- Log: 日志文件系统位置(对于 JFS2 文件系统很重要)。
- Version: 文件系统版本。
- Compressed: 是否启用了压缩。
- Journal: 是否启用了日志功能。
示例 5:检查特定目录所在的文件系统
你可以将一个目录名作为参数,df 会告诉你该目录位于哪个文件系统上。
$ df /home/oracle Filesystem 512-blocks Used Available %Used Mounted on /dev/hd9var 2097152 819200 1277952 39% /home/oracle
这表示 /home/oracle 目录被挂载在 /dev/hd9var 这个文件系统上。
高级用法和脚本技巧
结合 grep 查找特定文件系统
在大型服务器上,文件系统很多,可以使用 grep 快速定位。
# 查找所有以 /dev/hd 开头的本地文件系统
df -g | grep "^/dev/hd"
# 查找使用率超过 80% 的文件系统
df -g | awk '$5 > 80 {print}'
使用 awk 进行格式化输出
df -P 的输出格式非常规整,非常适合用 awk 进行处理。
# 使用 awk 提取挂载点和使用率两列,并格式化输出
df -P | awk 'NR > 1 {printf "Mount: %s, Usage: %s\n", $6, $5}'
相关命令
- du (disk usage):
df显示文件系统的总体空间,而du用于递归地计算指定目录或文件所占用的磁盘空间。du可以帮你找到占用空间最大的目录或文件。# 查看 /var 目录下各个子目录的大小 du -sh /var/*
- lsfs (list file systems): 显示文件系统的静态配置信息,如设备名、挂载点、大小、日志设备等,它不提供实时使用情况。
lsfs -a /dev/hd4
- mount: 显示当前已挂载的文件系统列表,功能与
df类似,但信息格式不同。
在 AIX 系统管理中,熟练掌握 df 命令是基础中的基础。
- 日常快速检查: 使用
df -g。 - 排查空间不足问题: 先用
df -g,如果空间确实满了,用du找出大文件;如果空间没满,用df -i检查 inode。 - 深入分析文件系统: 使用
df -v查看文件系统属性。 - 自动化监控: 将
df -g或df -P的输出通过管道传递给awk或grep,编写脚本进行自动化告警。
