Linux上查看磁盘空间及文件夹的大小
在服务器上搭载了多台虚拟机,突然间有台装有MySQL的虚拟机的硬盘空间的使用率达到了100%。
使用df命令可以显示目前所有文件系统的可用空间及使用情形。
引用
$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
28G 26G 222M 100% /
/dev/hda1 99M 12M 83M 13% /boot
tmpfs 742M 0 742M 0% /dev/shm
参数 -h 表示使用「Human-readable」的输出,也就是在档案系统大小使用 GB、MB 等易读的格式。
上面的命令输出的第一个字段(Filesystem)及最后一个字段(Mounted on)分别是档案系统及其挂入点。接下来的四个字段 Size、Used、Avail、及 Use% 分别是该分割区的容量、已使用的大小、剩下的大小、及使用的百分比。
我查看了文件临时文件、MySQL下的relay文件,基本上没有可以删除的。想到du命令可以查询文件或文件夹的磁盘使用空间,就对根目录执行了du命令。
引用
$ du -sm * | sort -n
0 misc
0 net
0 proc
0 selinux
0 sys
1 dev
1 home
1 lost+found
1 media
1 mnt
1 opt
1 srv
1 tmp
7 bin
7 boot
29 sbin
75 lib
117 etc
2560 usr
8141 root
15331 var
参数 -sm * 会对每个目录/文件,按M进行统计大小。sort -n 表示对结果按照使用量大小进行排序。
发现root和var目录所占空间比较多,在var下再次使用du命令,原来是log目录中,有8G的mysqld.log,删掉它剩余空间终于有了。
不过还不要满足,root目录中只有4个文件,为什么会有8G呢。是隐藏文件,/root/.Trash 是一个Linux环境下的垃圾回收站,文件删除的时候会被先放到这里,由于回收站没有清空,所以空间占用了8G。清空了回收站,空间又都回来了。
引用
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
28G 12G 15G 45% /
/dev/hda1 99M 12M 83M 13% /boot
tmpfs 742M 0 742M 0% /dev/shm