linux 硬盘容量占用查询
经常收到我们的 vps 用户询问,“我的 vps 没装新东西,为什么硬盘越用越少了?”,这多半是因为系统上的各种日志长期积累下来的结果,比如 Nginx, apache 等留下来的访问日志信息长时间不清理、而且访问量大的话会很容易就膨胀到 GB;有时候某种应用程序的日志藏在文件系统的深处,不易发觉;有时候自己拷贝了一些大文件放在某个地方时间长了就忘了。那么如何在 linux 系统上找到这些占用硬盘空间的文件呢?
首先我们可以统计一下根目录下各个目录占用硬盘的情况,找出最占用硬盘的那个目录:
# DU -SH /* 6.2M /BIN 17M /BOOT 136K /DEV 97M /ETC 147G /HOME 584M /LIB 16M /LIB64 16K /LOST+FOUND 8.0K /MEDIA 12K /MNT 252K /OPT 0 /PROC 1.7G /root 28M /SBIN 8.0K /SElinux 3.1M /SRV 0 /SYS 20K /TMP 1.9G /USR 748M /VAR
从上面可看出 /HOME 占用了最多的硬盘,我们去看看 /HOME 下哪些用户占用了最多的空间:
# DU -SH /HOME/* 4.0K /HOME/BAK 106M /HOME/COS 28K /HOME/GUEST 16K /HOME/LOST+FOUND 105G /HOME/vpsEE 33G /HOME/SOMEBODY 8.2G /HOME/ABC
可以看到 vpsEE 这个用户和他的 HOME 目录 /HOME/VPSEE 用掉了最多的硬盘(105GB),我们再看看 /HOME/VPSEE 下究竟哪些文件占用了空间,用下面的一行命令找出某个目录下(这里是 /HOME/VPSEE)大小超过 500MB 的文件(打印前40行并按照 MB 从小到大排列):
# FIND /HOME/VPSEE -PRINTF "%K %P\N" | SORT -G -K 1,1 | \ AWK '{IF($1 > 500000) PRINT $1/1024 "MB" " " $2 }' |TAIL -N 40 647.68MB /HOME/VPSEE/linux/debian-504-AMD64-CD-1.ISO 675.664MB /HOME/VPSEE/linux/FEDORA-13-I686-LIVE.ISO 677.656MB /HOME/VPSEE/UNIX/OSOL-0906-X86.ISO 678.172MB /HOME/VPSEE/Linux/Ubuntu-10.04-SERVER-AMD64.ISO 700.133MB /HOME/VPSEE/Linux/Ubuntu-10.04-DESKTOP-I386.ISO 1304.64MB /HOME/VPSEE/MAC/MACTEX.MPKG.ZIP
可以看到 /HOME/VPSEE 是个 ISO 收藏狂,收了一堆 LINXU ISO 安装文件,以前拨号上网时代大家都喜欢收集一些软件和工具存在硬盘里,现在网络这么发达,这些旧习惯已经没必要了,ISO 文件可有可无,需要的时候就去下一个最新的,用不着自己保留,网络就是我们的硬盘。