我的服务器没装新东西,为什么硬盘越用越少了?这多半是因为系统上的各种日志长期积累下来的结果,比如 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 文件可有可无,需要的时候就去下一个最新的,用不着自己保留,网络就是我们的硬盘。