欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

linux如何查看系统占用磁盘空间最大的文件及让文件按大小排序 空间 100 100% 查找大文件 有大用 有大大用

shiping1 的头像
1) find / -type f -size +10G   //查找/下大小超过10G的普通文件
2) find / -type f -size +1G  -print0 | xargs -0 du -h   //查找/下大小超过1G的普通文件
3) 找出排名前10的目录
          cd  /

   du -hsx * | sort -rh | head -10     #排序由大到小
       或者
         cd  /
       du -sh * | sort -rh | head               #排序由大到小
      或者
     cd /
     du -h --max-depth=1 | sort -rh | head    
   #排序由大到小






本帖最后由 Open-Source 于 2011-7-20 20:57 编辑

Q:下午有一客户磁盘空间占用很大,使用df查看磁盘剩余空间很小了,客户想知道是哪些文件占满了文件。             

      Q1:在Linux下如何查看系统占用磁盘空间最大的文件?
      Q2:在Linux下如何让文件夹下的文件让文件按大小排序?

A:
      不知您是否遇到过这样的问题,服务器上架没多长时间磁盘怎么装满了。
      分析:大多是由于日志没有轮滚,可以使用脚本或logrotate将日志定期备份删除或直接关闭不需要的日志记录功能。51开源社区帖子有相关各种服务器日志的处理方法。接下来你会想起来去apache和mysql或其他应用服务器的日志文件所在的路径。进入相应的日志路径后发现果然是日志惹的祸,删除日志,关于日志轮滚请参照51开源社区其他帖子。但这并不是本文的主题所在。
假如是其他文件占用了磁盘空间,如何查出来呢。我主要使用find和du命令。

是其他文件占用了磁盘空间,如何查出来呢。我主要使用find和du命令。[root@localhost data]# find / -type f -size +10G/usr/local/apache2/logs/access_log[root@localhost data]# du -h /usr/local/apache2/logs/access_l000000og24G     /usr/local/apache2/logs/access_log[root@localhost data]# find / -type f -size +5G/webapp/web.tar.gz/usr/local/apache2/logs/access_log/usr/local/apache2/logs/access_log_100814[root@localhost data]# find / -type f -size +1G/webapp/web/bbs.yeslicake.com/data/attachment/forum/tmp/webapp/web.tar.gz/usr/local/mysql/data/mysql-bin.000056/usr/local/mysql/data/mysql-bin.000050/usr/local/mysql/data/mysql-bin.000044/usr/local/mysql/data/mysql-bin.000013/usr/local/mysql/data/mysql-bin.000028/usr/local/mysql/data/mysql-bin.000051/usr/local/mysql/data/mysql-bin.000023/usr/local/mysql/data/mysql-bin.000037/usr/local/mysql/data/mysql-bin.000047/usr/local/mysql/data/mysql-bin.000039/usr/local/mysql/data/mysql-bin.000057/usr/local/mysql/data/mysql-bin.000009/usr/local/mysql/data/mysql-bin.000040/usr/local/mysql/data/mysql-bin.000055/usr/local/mysql/data/mysql-bin.000053/usr/local/mysql/data/mysql-bin.000011/usr/local/mysql/data/mysql-bin.000035/usr/local/mysql/data/mysql-bin.000036/usr/local/mysql/data/mysql-bin.000048/usr/local/mysql/data/mysql-bin.000046/usr/local/mysql/data/mysql-bin.000038/usr/local/mysql/data/mysql-bin.000010/usr/local/mysql/data/mysql-bin.000041/usr/local/mysql/data/mysql-bin.000029/usr/local/mysql/data/mysql-bin.000025/usr/local/mysql/data/mysql-bin.000052/usr/local/mysql/data/mysql-bin.000012/usr/local/mysql/data/mysql-bin.000042/usr/local/mysql/data/mysql-bin.000049/usr/local/mysql/data/mysql-bin.000021/usr/local/mysql/data/mysql-bin.000045/usr/local/mysql/data/mysql-bin.000020/usr/local/mysql/data/mysql-bin.000043/usr/local/mysql/data/mysql-bin.000034/usr/local/mysql/data/mysql-bin.000032/usr/local/mysql/data/mysql-bin.000019/usr/local/mysql/data/mysql-bin.000061/usr/local/apache2/logs/access_log/usr/local/apache2/logs/access_log_100814/usr/local/apache2/logs/error_log[root@localhost data]#复制代码find / -type f -size +10G   //查找/下大小超过10G的普通文件du -h /usr/local/apache2/logs/access_log  //查看access_log占用磁盘空间大小通过以上命令,你可以知道是apache,mysql日志占用了磁盘空间。------Q1解决。在Linux下如何让文件夹下的文件让文件按大小排序?我有两种方法。方法一:# ls -lhS l长格式显示,h human readable模式,大小单位为M,G等易读格式,S size按大小排序。ls -lhS | head -n 10   #找出前10个大的文件[root@localhost data]# ls -lhS1.1G    mysql-bin.0000091.1G    mysql-bin.0000101.1G    mysql-bin.0000111.1G    mysql-bin.0000121.1G    mysql-bin.0000131.1G    mysql-bin.0000191.1G    mysql-bin.0000201.1G    mysql-bin.0000211.1G    mysql-bin.0000231.1G    mysql-bin.0000251.1G    mysql-bin.0000281.1G    mysql-bin.0000291.1G    mysql-bin.0000321.1G    mysql-bin.0000341.1G    mysql-bin.0000351.1G    mysql-bin.0000361.1G    mysql-bin.0000371.1G    mysql-bin.0000381.1G    mysql-bin.0000391.1G    mysql-bin.0000401.1G    mysql-bin.0000411.1G    mysql-bin.0000421.1G    mysql-bin.0000431.1G    mysql-bin.0000441.1G    mysql-bin.0000451.1G    mysql-bin.0000461.1G    mysql-bin.0000471.1G    mysql-bin.0000481.1G    mysql-bin.0000491.1G    mysql-bin.0000501.1G    mysql-bin.0000511.1G    mysql-bin.0000521.1G    mysql-bin.0000531.1G    mysql-bin.0000551.1G    mysql-bin.0000561.1G    mysql-bin.0000571.1G    mysql-bin.000061复制代码方法二:#du -h * | sort -n[root@localhost data]# du -h * | sort -n1.1G    mysql-bin.0000091.1G    mysql-bin.0000101.1G    mysql-bin.0000111.1G    mysql-bin.0000121.1G    mysql-bin.0000131.1G    mysql-bin.0000191.1G    mysql-bin.0000201.1G    mysql-bin.0000211.1G    mysql-bin.0000231.1G    mysql-bin.0000251.1G    mysql-bin.0000281.1G    mysql-bin.0000291.1G    mysql-bin.0000321.1G    mysql-bin.0000341.1G    mysql-bin.0000351.1G    mysql-bin.0000361.1G    mysql-bin.0000371.1G    mysql-bin.0000381.1G    mysql-bin.0000391.1G    mysql-bin.0000401.1G    mysql-bin.0000411.1G    mysql-bin.0000421.1G    mysql-bin.0000431.1G    mysql-bin.0000441.1G    mysql-bin.0000451.1G    mysql-bin.0000461.1G    mysql-bin.0000471.1G    mysql-bin.0000481.1G    mysql-bin.0000491.1G    mysql-bin.0000501.1G    mysql-bin.0000511.1G    mysql-bin.0000521.1G    mysql-bin.0000531.1G    mysql-bin.0000551.1G    mysql-bin.0000561.1G    mysql-bin.0000571.1G    mysql-bin.0000611.3M    mysql2.0M    openx5.1M    ib_logfile05.1M    ib_logfile17.1M    shopex8.0K    mysql-bin.0000018.0K    mysql-bin.0000028.0K    mysql-bin.0000158.0K    mysql-bin.0000168.0K    mysql-bin.0000178.0K    mysql-bin.0000188.0K    mysql-bin.0000318.0K    mysql-bin.index8.0K    mysql.pid8.0K    test11M     ibdata112K     mysql-bin.00000715M     mysql-bin.00005916K     joyuan24K     mysql.err38M     mysql-bin.00006044M     mysql-bin.000005114M    mysql-bin.000058180M    phpcms239M    mysql-bin.000008247M    mysql-bin.000004273M    mysql-bin.000003286M    artcake308M    mysql-bin.000054320M    mysql-bin.000006341M    root365M    mysql-bin.000062421M    mysql-bin.000024460K    bugfree2480K    mysql-bin.000027624M    mysql-bin.000033682M    mysql-bin.000030789M    mysql-bin.000022807M    mysql-bin.000014957M    mysql-bin.000026复制代码当然您也可以结合管道查看文件夹内最大的几个文件或最小的几个文件。[root@localhost data]# du -h * | sort -n|head 1.1G    mysql-bin.0000091.1G    mysql-bin.0000101.1G    mysql-bin.0000111.1G    mysql-bin.0000121.1G    mysql-bin.0000131.1G    mysql-bin.0000191.1G    mysql-bin.0000201.1G    mysql-bin.0000211.1G    mysql-bin.0000231.1G    mysql-bin.000025[root@localhost data]# du -h * | sort -n|tail341M    root366M    mysql-bin.000062421M    mysql-bin.000024460K    bugfree2480K    mysql-bin.000027624M    mysql-bin.000033682M    mysql-bin.000030789M    mysql-bin.000022807M    mysql-bin.000014957M    mysql-bin.000026[root@localhost data]#复制代码--------Q2解决。51开源社区原创,转载请注明本文链接。 
( # ̄▽ ̄#)你若不离不弃,我必生死相依。
 
  
 
沙发
 发表于 2011-7-20 20:40:31 |只看该作者
很实用,辛苦了。
 
 
  

 
板凳
 发表于 2011-7-20 20:59:57 |只看该作者
其中方法二并没有完全按大小排序,但对于我们运维处理问题已经够了。如果文件夹内的文件不是太多,并不需要排序,使用下面的命令也能查看到文件夹内各文件的大小。[root@localhost /]# du -h --max-depth=1 /7.5M    /bin84K     /dev857M    /var8.0K    /opt12K     /.elinks8.0K    /srv522M    /root0       /sys60M     /etc16K     /lost+found30M     /sbin35G     /webapp8.0K    /media38G     /usr1.2G    /wwwroot0       /misc6.3M    /boot76M     /lib0       /selinux0       /net10M     /tmp0       /proc40K     /mnt75G     /[root@localhost /]#复制代码大家如果有更好的方法,欢迎在后面回帖。
来自 http://bbs.51osos.com/thread-4182-1-1.html


当磁盘空间被迅速占用的时候,我们必须找出一些,比较占用磁盘空间的文件或者文件夹。通常情况下,最有可能找出占用磁盘空间文件或文件夹的地方,主要是 /tmp or /var or /home。

      目前没有单个命令来完成查找的工作,通常可以使用一些命令的组合来帮助您找出磁盘上比较占用空间的文件或者文件夹。主要用到下面的三个命令:

     

  • du : 计算出单个文件或者文件夹的磁盘空间占用.

  • sort : 对文件行或者标准输出行记录排序后输出.

  • head : 输出文件内容的前面部分.

      用下面的命令组合就可以完成上述查找工作:

      

1# du -a /var | sort -n -r | head -n 10

      如果需要输出可读性高的内容,请使用如下命令:

1cd /path/to/some/where
2du -hsx * | sort -rh | head -10

来自 http://blog.csdn.net/nancygreen/article/details/17551855

Linux如何查找大文件或目录总结

2015-04-04 11:34 by 潇湘隐者, 49567 阅读, 3 评论, 收藏编辑

    在Windows系统中,我们可以使用TreeSize工具查找一些大文件或文件夹,非常的方便高效,在Linux系统中,如何去搜索一些比较大的文件呢?下面我整理了一下在Linux系统中如何查找大文件或文件夹的方法。

 

1: 如何查找大文件?

其实很多时候,你需要了解当前系统下有哪些大文件,比如文件大小超过100M或1G(阀值视具体情况而定)。那么如何把这些大文件搜索出来呢?例如我要搜索当前目录下,超过800M大小的文件

[root@getlnx01 u03]# pwd
/u03
[root@getlnx01 u03]# find . -type f -size +800M
./flash_recovery_area/backup/backupsets/ora_df873519197_s46815_s1
./flash_recovery_area/backup/backupsets/ora_df873523646_s46822_s1
./flash_recovery_area/backup/backupsets/ora_df873521714_s46818_s1
./flash_recovery_area/backup/backupsets/ora_df873522876_s46820_s1
./flash_recovery_area/backup/backupsets/ora_df873517396_s46813_s1
./flash_recovery_area/backup/backupsets/ora_df873523321_s46821_s1
./flash_recovery_area/backup/backupsets/ora_df873515765_s46811_s1
./flash_recovery_area/backup/backupsets/ora_df873520789_s46817_s1
./flash_recovery_area/backup/backupsets/ora_df873524162_s46823_s1
./flash_recovery_area/backup/backupsets/ora_df873518302_s46814_s1
./flash_recovery_area/backup/backupsets/ora_df873519953_s46816_s1
./flash_recovery_area/backup/backupsets/ora_df873516500_s46812_s1
./flash_recovery_area/backup/backupsets/ora_df873513413_s46809_s1
./flash_recovery_area/backup/backupsets/ora_df873514789_s46810_s1
./oradata/epps/invsubmat_d08.dbf
./oradata/epps/gmtinv_d08.dbf
./oradata/epps/gmtinv_x01.dbf
./oradata/epps/undotbs02.dbf
./oradata/epps/gmtinv_d07.dbf
./oradata/epps/undotbs01.dbf
./oradata/epps/gmtinv_x02.dbf

clip_image001

 

如上命令所示,我们仅仅能看到超过800M大小的文件的文件名称,但是对文件的信息(例如,文件大小、文件属性)一无所知,那么能否更详细显示一些文件属性或信息呢,当然可以,如下所示

[root@getlnx01 u03]# find . -type f -size +800M  -print0 | xargs -0 ls -l
-rw-r----- 1 oracle oinstall 2782846976 Mar  6 11:51 ./flash_recovery_area/backup/backupsets/ora_df873513413_s46809_s1
-rw-r----- 1 oracle oinstall 1878433792 Mar  6 11:53 ./flash_recovery_area/backup/backupsets/ora_df873514789_s46810_s1
-rw-r----- 1 oracle oinstall 1378492416 Mar  6 11:54 ./flash_recovery_area/backup/backupsets/ora_df873515765_s46811_s1
-rw-r----- 1 oracle oinstall 1641381888 Mar  6 11:56 ./flash_recovery_area/backup/backupsets/ora_df873516500_s46812_s1
-rw-r----- 1 oracle oinstall 1564065792 Mar  6 11:58 ./flash_recovery_area/backup/backupsets/ora_df873517396_s46813_s1
-rw-r----- 1 oracle oinstall 1663492096 Mar  6 12:00 ./flash_recovery_area/backup/backupsets/ora_df873518302_s46814_s1
-rw-r----- 1 oracle oinstall 1368244224 Mar  6 12:02 ./flash_recovery_area/backup/backupsets/ora_df873519197_s46815_s1
-rw-r----- 1 oracle oinstall 1629069312 Mar  6 12:04 ./flash_recovery_area/backup/backupsets/ora_df873519953_s46816_s1
-rw-r----- 1 oracle oinstall 1629954048 Mar  6 12:06 ./flash_recovery_area/backup/backupsets/ora_df873520789_s46817_s1
-rw-r----- 1 oracle oinstall 1202192384 Mar  6 12:07 ./flash_recovery_area/backup/backupsets/ora_df873521714_s46818_s1
-rw-r----- 1 oracle oinstall 1189388288 Mar  6 12:10 ./flash_recovery_area/backup/backupsets/ora_df873522876_s46820_s1
-rw-r----- 1 oracle oinstall 1089257472 Mar  6 12:11 ./flash_recovery_area/backup/backupsets/ora_df873523321_s46821_s1
-rw-r----- 1 oracle oinstall 1097687040 Mar  6 12:12 ./flash_recovery_area/backup/backupsets/ora_df873523646_s46822_s1
-rw-r----- 1 oracle oinstall 1051009024 Mar  6 12:13 ./flash_recovery_area/backup/backupsets/ora_df873524162_s46823_s1
-rw-r----- 1 oracle oinstall 4294975488 Apr  3 15:07 ./oradata/epps/gmtinv_d07.dbf
-rw-r----- 1 oracle oinstall 4194312192 Apr  1 22:36 ./oradata/epps/gmtinv_d08.dbf
-rw-r----- 1 oracle oinstall 4294975488 Apr  3 15:54 ./oradata/epps/gmtinv_x01.dbf
-rw-r----- 1 oracle oinstall 4294975488 Apr  3 15:57 ./oradata/epps/gmtinv_x02.dbf
-rw-r----- 1 oracle oinstall 4294975488 Apr  1 22:35 ./oradata/epps/invsubmat_d08.dbf
-rw-r----- 1 oracle oinstall 8589942784 Apr  4 09:55 ./oradata/epps/undotbs01.dbf
-rw-r----- 1 oracle oinstall 8589942784 Apr  4 09:15 ./oradata/epps/undotbs02.dbf

clip_image002

当我们只需要查找超过800M大小文件,并显示查找出来文件的具体大小,可以使用下面命令

[root@getlnx01 u03]# find . -type f -size +800M  -print0 | xargs -0 du -h
1.3G    ./flash_recovery_area/backup/backupsets/ora_df873519197_s46815_s1
1.1G    ./flash_recovery_area/backup/backupsets/ora_df873523646_s46822_s1
1.2G    ./flash_recovery_area/backup/backupsets/ora_df873521714_s46818_s1
1.2G    ./flash_recovery_area/backup/backupsets/ora_df873522876_s46820_s1
1.5G    ./flash_recovery_area/backup/backupsets/ora_df873517396_s46813_s1
1.1G    ./flash_recovery_area/backup/backupsets/ora_df873523321_s46821_s1
1.3G    ./flash_recovery_area/backup/backupsets/ora_df873515765_s46811_s1
1.6G    ./flash_recovery_area/backup/backupsets/ora_df873520789_s46817_s1
1004M   ./flash_recovery_area/backup/backupsets/ora_df873524162_s46823_s1
1.6G    ./flash_recovery_area/backup/backupsets/ora_df873518302_s46814_s1
1.6G    ./flash_recovery_area/backup/backupsets/ora_df873519953_s46816_s1
1.6G    ./flash_recovery_area/backup/backupsets/ora_df873516500_s46812_s1
2.6G    ./flash_recovery_area/backup/backupsets/ora_df873513413_s46809_s1
1.8G    ./flash_recovery_area/backup/backupsets/ora_df873514789_s46810_s1
4.1G    ./oradata/epps/invsubmat_d08.dbf
4.0G    ./oradata/epps/gmtinv_d08.dbf
4.1G    ./oradata/epps/gmtinv_x01.dbf
8.1G    ./oradata/epps/undotbs02.dbf
4.1G    ./oradata/epps/gmtinv_d07.dbf
8.1G    ./oradata/epps/undotbs01.dbf
4.1G    ./oradata/epps/gmtinv_x02.dbf

clip_image003

 

如果你还需要对查找结果按照文件大小做一个排序,那么可以使用下面命令

[root@getlnx01 u03]# find . -type f -size +800M  -print0 | xargs -0 du -h | sort -nr
1004M   ./flash_recovery_area/backup/backupsets/ora_df873524162_s46823_s1
8.1G    ./oradata/epps/undotbs02.dbf
8.1G    ./oradata/epps/undotbs01.dbf
4.1G    ./oradata/epps/invsubmat_d08.dbf
4.1G    ./oradata/epps/gmtinv_x02.dbf
4.1G    ./oradata/epps/gmtinv_x01.dbf
4.1G    ./oradata/epps/gmtinv_d07.dbf
4.0G    ./oradata/epps/gmtinv_d08.dbf
2.6G    ./flash_recovery_area/backup/backupsets/ora_df873513413_s46809_s1
1.8G    ./flash_recovery_area/backup/backupsets/ora_df873514789_s46810_s1
1.6G    ./flash_recovery_area/backup/backupsets/ora_df873520789_s46817_s1
1.6G    ./flash_recovery_area/backup/backupsets/ora_df873519953_s46816_s1
1.6G    ./flash_recovery_area/backup/backupsets/ora_df873518302_s46814_s1
1.6G    ./flash_recovery_area/backup/backupsets/ora_df873516500_s46812_s1
1.5G    ./flash_recovery_area/backup/backupsets/ora_df873517396_s46813_s1
1.3G    ./flash_recovery_area/backup/backupsets/ora_df873519197_s46815_s1
1.3G    ./flash_recovery_area/backup/backupsets/ora_df873515765_s46811_s1
1.2G    ./flash_recovery_area/backup/backupsets/ora_df873522876_s46820_s1
1.2G    ./flash_recovery_area/backup/backupsets/ora_df873521714_s46818_s1
1.1G    ./flash_recovery_area/backup/backupsets/ora_df873523646_s46822_s1
1.1G    ./flash_recovery_area/backup/backupsets/ora_df873523321_s46821_s1

clip_image004

不过如上截图所示,有时候排列的顺序并不完全是按大小一致,这个是因为du命令的参数h所致,你可以统一使用使用MB来显示,这样就能解决这个问题。到这里,这个在Linux系统查找大文件的命令已经非常完美了,当然如果你还有很多的需求,那么可以在这个命令上做修改、调整.

clip_image005

 

2: 如何查找Linux下的大目录

譬如有时候磁盘空间告警了,而你平时又疏于管理、监控文件的增长,那么我需要快速的了解哪些目录变得比较大,那么此时我们可以借助du命令来帮我们解决这个问题。

[root@getlnx01 u03]# du -h --max-depth=1
16K     ./lost+found
33G     ./flash_recovery_area
37G     ./oradata
70G     .

如果你想知道flash_recovery_area目录下面有哪些大文件夹,那么可以将参数max-depth=2 ,如果你想对搜索出来的结果进行排序,那么可以借助于sort命令。如下所示

[root@getlnx01 u03]# du -h --max-depth=2 | sort -n
3.5G    ./flash_recovery_area/EPPS
16K     ./lost+found
29G     ./flash_recovery_area/backup
33G     ./flash_recovery_area
37G     ./oradata
37G     ./oradata/epps
70G     .
[root@getlnx01 u03]# du -hm --max-depth=2 | sort -n
1       ./lost+found
3527    ./flash_recovery_area/EPPS
29544   ./flash_recovery_area/backup
33070   ./flash_recovery_area
37705   ./oradata
37705   ./oradata/epps
70775   .

clip_image006

[root@getlnx01 u03]# cd /

[root@getlnx01 /]# du -hm --max-depth=2 | sort -n

有时候搜索出来的结果太多了(譬如,我从根目录开始搜索),一直在刷屏,如果我只想查出最大的12个文件夹,怎么办呢?此时就要借助head命令来显示了

[root@getlnx01 /]# du -hm --max-depth=2 | sort -nr | head -12
407480  .
167880  ./u04
158685  ./u02/oradata
158685  ./u02
152118  ./u04/oradata
70775   ./u03
37705   ./u03/oradata
33070   ./u03/flash_recovery_area
5995    ./u01/app
5995    ./u01
3551    ./usr
1558    ./usr/share
[root@getlnx01 /]#

clip_image007

来自  http://www.cnblogs.com/kerrycode/p/4391859.html


linux 最大文件查找


sudo du -s * | sort -nr | head   显示前10个占用空间最大的文件或目录

sudo du --max-depth=1         linux查找占空间最大的文件与目录  

sudo find / -size +204800        这样可以查找出大于100M的文件,按需求删除就可

sudo find ./ -size +2048c             查找大于2K的文件,+ 表示大于

sudo find ./ -size +2048c -type f     查找小于2K的文件,- 表示小于

du -sh ./* sort 

find // -xdev -type f -size +10000000c -exec ls -lad {} \;  
 

来自  http://jingyan.baidu.com/article/948f59242a9419d80ef5f95d.html



 
普通分类: