linux查找系统中占用磁盘空间最大的文件

时间:2022-03-30 03:48:22

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

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

A:

不知您是否遇到过这样的问题,服务器上架没多长时间磁盘怎么装满了。

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

使用find命令找到大于指定大小的文件:

[root@localhost data]# find / -type f -size +10G

将输出:

/usr/local/apache2/logs/access_log

马上可以通过du命令查看此文件的大小:

[root@localhost data]# du -h /usr/local/apache2/logs/access_log
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