快速找出linux下的大文件

这是个经常遇到的问题,比如磁盘空间不足,需要释放空间,又比web故障,快速的找出大文件或者目录,有时能帮我们找到故障的原因并解决。记得刚踏入现公司的第一天就遇到一个web故障,网站访问异常,发现是磁盘空间占满导致的,具体过程就不说了,进而发现一个web目录占用超过170G了,全是数据库备份文件,汗。

回正题,查找当然是用到find命令了,详细的用法大家可以-help查看。下面给个例子:查找磁盘大于100M的文件

# find / -type f -size +100000k | xargs ls -lh | awk '{ print $9 ": " $5 }'
./ibdata1: 10M
./www_flyym_com/flyym_postmeta.MYD: 216M
./www_flyym_com/flyym_posts.MYD: 236M
./www_flyym_com/flyym_posts.MYI: 238M

当然,具体运用的时候,配合du df命令,效果更佳,关于du命令,请参考《linux下查看文件大小-移动文件到指定目录

du -h --max-depth=1 |sort -hr #查看当前所有子目录的大小并排序
find /home/ -type f -size +1G | xargs ls -l #列出/home下大于1G的文件
find /home/ -type f -size +1G -exec du -sh {} \; #列出/home下大于1G的文件
find /home/ -type f -size +1G | xargs rm -rf {}\; #删除/home下大于1G的文件

linux下查看文件大小-移动文件到指定目录

上午同时说服务器上有个web目录已经有160多G了,好无助的样子。既然说要做好笔记,就记录下来吧。

1

登陆上去一看,乖乖,167G全是备份文件。最最常见的问题了,把不重要的备份文件转移一下即可。

用到的命令包括:
du 查看各目录或文件所占空间
mv 移动文件到指定位置
因为文件要暂存到移动硬盘,所以还需要
mount 挂载磁盘
du
只显示当前目录子目录的大小和当前目录的总的大小,最下面的. 为当前目录的总大小,我这里用到的参数是:
du -h --max-depth=1  输出当前目录下各个子目录所使用的空间
,就可以看到web目录下各个文件夹的占用情况了,如上图。找到症结才可以对症下药。

说到du就不得不提df,df是查看磁盘空间使用情况,2者是有区别的,用的时候注意别搞混淆了。

移动的时候mysql服务挂掉了,后来仔细一看,这个网站的备份是每秒1个,前端看了程序,数据库已经被篡改的面目全非了,所以就不多说了,直接上图了,查马去了!
1

2

3

4

5

6