du的英文原义为“disk usage”,含义为显示磁盘空间的使用情况。
功能:统计目录(或文件)所占磁盘空间的大小。
语法:du [选项] [Names…]
说明:该命令逐级进入指定目录的每一个子目录并显示该目录占用文件系统数据块(1024字节)的情况。若没有给出Names,则对当前目录进行统计。
该命令的各个选项含义如下:
-s 对每个Names参数只给出占用的数据块总数。
-a 递归地显示指定目录中各文件及子孙目录中各文件占用的数据块数。若既不指定-s,也不指定-a,则只显示Names中的每一个目录及其中的各子目录所占的磁盘块数。
-b 以字节为单位列出磁盘空间使用情况(系统缺省以k字节为单位)。
-k 以1024字节为单位列出磁盘空间使用情况。
-c 最后再加上一个总计(系统缺省设置)。
-l 计算所有的文件大小,对硬链接文件,则计算多次。
-x 跳过在不同文件系统上的目录不予统计。
以上为官方解释。下面说一下他的用法:
查看linux文件目录的大小和文件夹包含的文件数 统计总数大小
du -sh 目录名/
统计当前目录大小 并安大小 排序
du -sm * | sort -n
看一个人的大小
du -sk * | grep guojf
/看第二个/ 字符前的文字
du -m | cut -d "/" -f 2
查看此文件夹有多少文件 /*/*/* 有多少文件
du 目录名/*/*/* |wc -l
我们的服务器经常报磁盘满的错误,但是查的时候却发现,用了8.6G,但是实际情况只是使用4.1G。
[root@gz_cimg47 home]# df -h
Filesystem ÈÝÁ¿ ÒÑÓà ¿ÉÓà ÒÑÓÃ% ¹ÒÔصã
/dev/sda3 1012M 150M 811M 16% /
/dev/sda1 99M 12M 83M 12% /boot
/dev/sda10 40G 81M 38G 1% /cache
none 1014M 0 1014M 0% /dev/shm
/dev/sda6 9.9G 8.6G 852M 92% /home
/dev/sda5 9.9G 55M 9.3G 1% /logs
/dev/sda8 1012M 34M 927M 4% /tmp
/dev/sda7 3.0G 1.5G 1.5G 51% /usr
/dev/sda9 1012M 87M 874M 10% /var
[root@gz_cimg47 home]# du -sh .
4.1G .
后来经过查证后才知道,原来是MYSQL的日志文件/var满了。
引起数据库进程僵死,进而引起HOME下面磁盘的使用率。
把数据库进程和APACHE进程KILL掉后,磁盘又回来了。
[root@gz_cimg47 home]# df -h
Filesystem ÈÝÁ¿ ÒÑÓà ¿ÉÓà ÒÑÓÃ% ¹ÒÔصã
/dev/sda3 1012M 150M 811M 16% /
/dev/sda1 99M 12M 83M 12% /boot
/dev/sda10 40G 81M 38G 1% /cache
none 1014M 0 1014M 0% /dev/shm
/dev/sda6 9.9G 4.2G 5.3G 45% /home
/dev/sda5 9.9G 55M 9.3G 1% /logs
/dev/sda8 1012M 34M 927M 4% /tmp
/dev/sda7 3.0G 1.5G 1.5G 51% /usr
/dev/sda9 1012M 88M 873M 10% /var
这下正常了,但是有一个问题。数据库进程僵死为什么会引起HOME磁盘满呢??