用途说明
df命令是用来查看磁盘空间的使用情况的。另外一个相关的命令就是du,请参考本系列--我使用过的Linux命令之du 。
常用参数
-T 打印文件系统类型。
-h 以友好格式显示数值。
-H 也是以友好方式显示数值,但1K是以1000计算的,而不是1024。
-l 只显示本地文件系统。
-a 显示全部文件系统。
使用示例
示例一
[root@jfht ~]# df
文件系统 1K-块 已用 可用 已用% 挂载点
/dev/mapper/VolGroup00-LogVol00
966221844 25615464 890733484 3% /
/dev/cciss/c0d0p1 493891 16888 451504 4% /boot
tmpfs 2074392 0 2074392 0% /dev/shm
[root@jfht ~]# df -T
文件系统 类型 1K-块 已用 可用 已用% 挂载点
/dev/mapper/VolGroup00-LogVol00
ext3 966221844 25615932 890733016 3% /
/dev/cciss/c0d0p1
ext3 493891 16888 451504 4% /boot
tmpfs tmpfs 2074392 0 2074392 0% /dev/shm
[root@jfht ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/VolGroup00-LogVol00
922G 25G 850G 3% /
/dev/cciss/c0d0p1 483M 17M 441M 4% /boot
tmpfs 2.0G 0 2.0G 0% /dev/shm
[root@jfht ~]# df -H
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/VolGroup00-LogVol00
990G 27G 913G 3% /
/dev/cciss/c0d0p1 506M 18M 463M 4% /boot
tmpfs 2.2G 0 2.2G 0% /dev/shm
[root@jfht ~]# df /root
文件系统 1K-块 已用 可用 已用% 挂载点
/dev/mapper/VolGroup00-LogVol00
966221844 25616084 890732864 3% /
[root@jfht ~]# df -t ext3 | grep '[0789].%'
[root@jfht ~]# if df -t ext3 | grep '[0789].%'; then
> echo "warning: disk space usage is very dangerous"
> fi
[root@jfht ~]#
示例二
[root@web ~]# df
文件系统 1K-块 已用 可用 已用% 挂载点
/dev/mapper/VolGroup00-LogVol00
467747952 86724560 356879932 20% /
/dev/hda1 101086 12081 83786 13% /boot
tmpfs 2037708 0 2037708 0% /dev/shm
/setup/os/rhel55.iso 3038672 3038672 0 100% /mnt/rhel55
[root@web ~]# df -T
文件系统 类型 1K-块 已用 可用 已用% 挂载点
/dev/mapper/VolGroup00-LogVol00
ext3 467747952 86727892 356876600 20% /
/dev/hda1 ext3 101086 12081 83786 13% /boot
tmpfs tmpfs 2037708 0 2037708 0% /dev/shm
/setup/os/rhel55.iso
iso9660 3038672 3038672 0 100% /mnt/rhel55
[root@web ~]# df -aT
文件系统 类型 1K-块 已用 可用 已用% 挂载点
/dev/mapper/VolGroup00-LogVol00
ext3 467747952 86728364 356876128 20% /
proc proc 0 0 0 - /proc
sysfs sysfs 0 0 0 - /sys
devpts devpts 0 0 0 - /dev/pts
/dev/hda1 ext3 101086 12081 83786 13% /boot
tmpfs tmpfs 2037708 0 2037708 0% /dev/shm
none binfmt_misc 0 0 0 - /proc/sys/fs/binfmt_misc
sunrpc rpc_pipefs 0 0 0 - /var/lib/nfs/rpc_pipefs
/setup/os/rhel55.iso
iso9660 3038672 3038672 0 100% /mnt/rhel55
[root@web ~]# df -t ext3 | grep '[0789].%'
[root@web ~]# if df -t ext3 | grep '[0789].%'; then
> echo "warning: disk space usage is very dangerous"
> fi
[root@web ~]#
示例三 只显示本地文件系统
[root@web186 root]# df
文件系统 1K-块 已用 可用 已用% 挂载点
/dev/hda2 77649156 54442380 19262420 74% /
/dev/hda1 101089 9204 86666 10% /boot
none 251928 0 251928 0% /dev/shm
192.168.1.181:/vmsnfs
503964488 112052408 366312104 24% /nas/vmsnfs181
[root@web186 root]# df -l
文件系统 1K-块 已用 可用 已用% 挂载点
/dev/hda2 77649156 54442020 19262780 74% /
/dev/hda1 101089 9204 86666 10% /boot
none 251928 0 251928 0% /dev/shm
[root@web186 root]# df -t ext3 | grep '[0789].%'
/dev/hda2 77649156 54442360 19262440 74% /
[root@web186 root]# if df -t ext3 | grep '[0789].%'; then
> echo "warning: disk space usage is very dangerous"
> fi
/dev/hda2 77649156 54442484 19262316 74% /
warning: disk space usage is very dangerous
[root@web186 root]#
示例四
[root@sunrise root]# df
文件系统 1K-块 已用 可用 已用% 挂载点
/dev/sda8 99928856 95226128 0 100% /
/dev/sda1 497829 19131 452996 5% /boot
/dev/sda6 2045712 0 2045712 0% /dev/shm
none 2045712 0 2045712 0% /dev/shm
/dev/sda5 302382384 39366680 247655560 14% /usr
/dev/sda3 503964484 146915172 331449336 31% /var
/dev/sda2 503964484 112052720 366311788 24% /vmsnfs
[root@sunrise root]# df -t ext3 | grep '[0789].%'
/dev/sda8 99928856 95226128 0 100% /
[root@sunrise root]# if df -t ext3 | grep '[0789].%'; then
> echo "warning: disk space usage is very dangerous"
> fi
/dev/sda8 99928856 95226128 0 100% /
warning: disk space usage is very dangerous
[root@sunrise root]# du --max-depth=1 | sort -nr
84503604 .
60447684 ./work181
6766240 ./db
2279532 ./vms20061231
1119136 ./work181.b20071106
1039964 ./work181.b20071024
653792 ./disk3
643104 ./disk2
273960 ./work181.before20070209
258468 ./setup
179800 ./work181.before20061231
163980 ./disk1
83388 ./data
48 ./backup
20 ./log
16 ./.ssh
8 ./.gstreamer
4 ./.gconfd
[root@sunrise root]#
示例五 编写一个磁盘空间监控的脚本
监控要求:当某个分区的已用百分比大于等于70%时就告警。
文件:checkdisk.sh
- #!/bin/sh
- # file: checkdisk.sh
- if df -t ext3 | grep '[0789].%'; then
- echo "warning: disk space usage is very dangerous"
- # TODO: fix your alarm action
- fi
特别要注意的是,上面的匹配模式中,[0789.%中的0是用来匹配100%的。这个脚本已经在前面的例子中得到了验证。这个脚本也可以做些修改,比如在大于80%才告警,只能是10%的整数倍,否则就不能适应了。