Linux查找系统中占用磁盘空间最大的文件的几种方法 - 杭州糊涂虫
原文:http://blog.csdn.net/da2015/article/details/44219005
Q:下午有一客户磁盘空间占用很大,使用df查看磁盘剩余空间很小了,客户想知道是哪些文件占满了文件。
- Q1:在Linux下如何查看系统占用磁盘空间最大的文件?
- Q2:在Linux下如何让文件夹下的文件让文件按大小排序?
A:
不知您是否遇到过这样的问题,服务器上架没多长时间磁盘怎么装满了。
分析:大多是由于日志没有轮滚,可以使用脚本或logrotate将日志定期备份删除或直接关闭不需要的日志记录功能。51开源社区帖子有相关 各种服务器日志的处理方法。接下来你会想起来去apache和mysql或其他应用服务器的日志文件所在的路径。进入相应的日志路径后发现果然是日志惹的 祸,删除日志,关于日志轮滚请参照51开源社区其他帖子。但这并不是本文的主题所在。 假如是其他文件占用了磁盘空间,如何查出来呢。我主要使用find和du命令。
使用find命令找到大于指定大小的文件:
- [root<span class=“variable” style=“margin:0px; padding:0px”>@localhost</span> data]<span class=“comment” style=“margin:0px; padding:0px”># find / -type f -size +10G</span>
将输出:
<pre class=”<a href=” http:=”” www.ahlinux.com=”” perl=”” “=”” target=”_blank” style=”margin-top: 0px; margin-bottom: 0px; padding: 0px;”>perl”>/usr/local/apache2/logs/access_log
马上可以通过du命令查看此文件的大小:
- [root<span class=“variable” style=“margin:0px; padding:0px”>@localhost</span> data]<span class=“comment” style=“margin:0px; padding:0px”># du -h /usr/local/apache2/logs/access_log</span>
24G /usr/local/apache2/logs/access_log
我们可以重复执行find命令来查找大文件,例如: find / -type f -size +5G
找到大于5G的文件。 find / -type f -size +1G
找到大于1G的文件
在Linux下如何让文件夹下的文件让文件按大小排序?
有两种方法。
- 方法一:#
ls -lhSl
长格式显示,h human readable模式,大小单位为M,G等易读格式,S size按大小排序。 - 方法二:#
du -h * | sort -n
当然您也可以结合管道查看文件夹内最大的几个文件或最小的几个文件, 再加上管道符号和head或者tail命令即可 du-h * | sort -n|head
du -h * | sort -n|tail