df 功能说明:报告文件系统磁盘空间的使用情况

参数选项:
-a    显示所有文件系统
-h    以容易理解的格式显示磁盘的使用情况端
-i    显示文件系统的inode信息迷
-t    显示指定类型的磁盘
-T    列出文件系统的类型

 
范例:显示磁盘的使用情况
[root@testdb62 ~]# df 
Filesystem              1K-blocks     Used Available Use% Mounted on
devtmpfs                  4074972        0   4074972   0% /dev
tmpfs                     4086988      108   4086880   1% /dev/shm
tmpfs                     4086988    66536   4020452   2% /run
tmpfs                     4086988        0   4086988   0% /sys/fs/cgroup
/dev/mapper/centos-root  95373824 36684564  58689260  39% /
/dev/sda1                 1038336   139276    899060  14% /boot
tmpfs                      817400        0    817400   0% /run/user/0


Filesystem    第1列是文件系统对应的设备文件的路径名(一般是硬盘上的分区)
1K-blocks     第2列是分区的总大小(单位为block)
Used          第3列是分区的使用大小
Available     第4列是分区的可用大小
Use%          第5列是使用百分比
Mounted on    第6列是文件系统的挂载点

第3列和第4列之和不等于第2列。这是因为默认的每个分区都预留了少量空间供root使用。
即使遇到空间已满的情况,root仍能登录和拥有解决问题所需的工作空间。清单中的Use%列表示普通用户空间使用的百分比,
即使这一数字达到了100%,分区仍然留有root使用的空间。

 

范例:参数-i 显示inode的使用情况

[root@cs6 data1]# df -i
Filesystem            Inodes IUsed   IFree IUse% Mounted on
/dev/mapper/vg_cs6-lv_root
                     1738080 23547 1714533    2% /
tmpfs                 238145     1  238144    1% /dev/shm
/dev/sda1             128016    38  127978    1% /boot



范例:参数-t显示指定类型的磁盘。
[root@cs6 data1]# df -t ext4    #<== -t 后面接文件系统类型,如ext2/ext3/ext4。
Filesystem           1K-blocks    Used Available Use% Mounted on
/dev/mapper/vg_cs6-lv_root
                      27228028 1689448  24148808   7% /
/dev/sda1               487652   28020    434032   7% /boot



范例:参数-T列出了文件系统的类型。

[root@cs6 data1]# df -T
Filesystem           Type  1K-blocks    Used Available Use% Mounted on
/dev/mapper/vg_cs6-lv_root
                     ext4   27228028 1689448  24148808   7% /
tmpfs                tmpfs    952580       0    952580   0% /dev/shm
/dev/sda1            ext4     487652   28020    434032   7% /boot



范例:向磁盘写入数据提示如下错误:No space left on device,然后通过df-h查看磁盘空间,结果发现磁盘没满,那么请问这可能是什么原因?

可能是inode数量被耗尽了。用df-i可查看inode的使用情况。
导致上述inode满的原因之一有如下几种情况:
Linux 系统目录/var/spool/clientmquene(CentOS5.8默认安装sendmail软件的邮件的临时队列目录)
或/var/spool/postfix/maildrop/(CentOS6.6默认安装postfix软件的邮件的临时队列目录)很容易被大量小文件占满,
导致出现“No space left on device”的错误。

原因分析:
系统中crond定时任务执行的程序有输出内容,输出内容会以邮件形式发给设置定时任务的用户,
而若Sendmail/Postfix服务没有启动,则会产生类似下面代码所示的这些文件,时间长了就会把系统的inode数量耗尽,
但是block的数量仍有剩余,所以使用df -h 查看空间还有剩余。


解决方法:
小文件太多,直接用rm -f删除会失败,显示参数过长的错误信息,这时需要用到
ls|xargs rm -f命令进行删除。若想要根治,可采用如下方法。
因为主要是由定时任务引起的,所以可在定时任务后加上>/dev/null 2>&1来解决