这两天又败了3个VPS,另外把网站也手痒折腾了一下,在整理VPS的时候发现,有些VPS明明没有跑什么东西,总是莫名其妙的少空间,“我的 VPS 没装新东西,为什么硬盘越用越少了?”,很多玩VPS的可能也和我一样有过这样的问题,度娘了一下,发现这多半是因为系统上的各种日志长期积累下来的结果,比如 nginx, apache 等留下来的访问日志信息长时间不清理、而且访问量大的话会很容易就膨胀到 GB;有时候某种应用程序的日志藏在文件系统的深处,不易发觉;有时候自己拷贝了一些大文件放在某个地方时间长了就忘了。那么如何在 Linux 系统上找到这些占用硬盘空间的文件呢?

首先我们可以统计一下根目录下各个目录占用硬盘的情况,找出最占用硬盘的那个目录:

[root@host]# du -sh /*

0       /aquota.group

0       /aquota.user

5.0M    /bin

4.0K    /boot

4.0K    /dev

5.2M    /etc

8.7G    /home

24M     /lib

4.0K    /media

4.0K    /mnt

4.0K    /opt

0       /proc

657M    /root

22M     /sbin

4.0K    /selinux

4.0K    /srv

0       /sys

107M    /tmp

1.1G    /usr

92M     /var

从上面可看出 /home 占用了最多的硬盘,我们去看看 /home 下哪些目录占用了最多的空间:

[root@host]# du -sh /home/*

5.6G /home/host

534M /home/logs

16K /home/mysql

2.5G /home/www

可以看到 host 这个目录 /home/host 用掉了最多的硬盘(5.6GB),我们再看看 /home/host 下究竟哪些文件占用了空间,用下面的一行命令找出某个目录下(这里是 /home/host)大小超过 500MB 的文件(打印前40行并按照 MB 从小到大排列):

[root@host]# find /home/host -printf “%k %p\n” | sort -g -k 1,1 | \awk ‘{if($1 > 500000) print $1/1024 “MB” ” ” $2 }’ |tail -n 40

597.484MB /home/host/img/blog.zip

1560.26MB /home/host/uploads/uploads.rar