我的服務器沒裝新東西,為什么硬盤越用越少了?這多半是因為系統上的各種日志長期積累下來的結果,比如 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 文件可有可無,需要的時候就去下一個最新的,用不着自己保留,網絡就是我們的硬盤。