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/v13
33G	/home/somebody
8.2G	/home/abc

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

# find /home/v13 -printf "%k %pn" | sort -g -k 1,1 | 
awk '{if($1 > 500000) print $1/1024 "MB" " " $2 }' |tail -n 40

647.68MB  /home/v13/linux/debian-504-amd64-CD-1.iso
675.664MB /home/v13/linux/Fedora-13-i686-Live.iso
677.656MB /home/v13/unix/osol-0906-x86.iso
678.172MB /home/v13/linux/ubuntu-10.04-server-amd64.iso
700.133MB /home/v13/linux/ubuntu-10.04-desktop-i386.iso
1304.64MB /home/v13/mac/MacTeX.mpkg.zip

可以看到 /home/v13ee 是个 iso 收藏狂,收了一堆 Linxu ISO 安装文件,以前拨号上网时代大家都喜欢收集一些软件和工具存在硬盘里,现在网络这么发达,这些旧习惯已经没必要了,ISO 文件可有可无,需要的时候就去下一个最新的,用不着自己保留,网络就是我们的硬盘。

您可以选择一种方式赞助本站

支付宝扫一扫赞助

微信钱包扫描赞助

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: