原文链接:

https://www.sohu.com/a/126941972_468741

近期,频繁发现模块出现大量写日志的问题,且没有日志压缩策略和保留历史文件的策略,导致日志文件大量膨胀,另外还发现一些组件大量写文件(非日志文件),单个文件不大,但是写的文件数量非常大,也导致改组件占用大量的硬盘空间,存在可能耗尽硬盘的隐患。现提供一种手工查询整个系统大文件/目录的方法,在问题没有彻底解决之前,先手工查询出隐患文件,手工清除,防止硬盘空间耗尽,导致系统挂死。

 

1

ssh到待检查的节点上执行命令:

df –h

命令表示:查询当前节点整体硬盘占用分布的情况

Linux 如何查找大文件

/dev/mapper/vg_sys-lv_root 是系统的根分区,重点需要关注这个大小和使用情况。

如果占用较多(根据各个现场实际情况分析,比如占用超过60%,或者比如实际使用量快100G了),需要分析硬盘被占用的原因。

2

Linux 如何查找大文件

命令表示:是查找根目录下大于3000M的文件

命令本身还想达到过滤这两个目录的效果,但是根据执行的结果看,似乎并没有过滤掉,不过并不影响我们的分析。

/var/lib/glance/images/ /var/lib/nova/instances/

这个命令可以帮助我们快速把单个的、巨大的文件找出来。

Linux 如何查找大文件

3

下面介绍如何查询单个文件不大,但是文件数量巨大,占用硬盘空间较多的目录:

先切换到根目录

cd /

然后输入

du -h --max-depth=1 |sort -hr

命令表示计算根目录下所有目录的空间占用,并按照占用从大到小的顺序排列。

Linux 如何查找大文件

4

如上图,/var目录占用非常大。

cd /var

切换到/var目录下,继续使用 du -h --max-depth=1 |sort -hr

Linux 如何查找大文件

5

如上图,lib目录占用非常大。

cd lib

切换到lib目录下,继续使用 du -h --max-depth=1 |sort –hr

Linux 如何查找大文件

6

如上图,docker docker-volume glance 目录占用都非常大。

如果熟悉TECS,可以大致了解哪些目录可能占用比较大,忽略一些目录,如果不清楚,就一个一个目录查询一下,大致知道各个目录下面是什么文件后,下次再查询就比较清楚了。

cd glance

切换到glance目录下,继续使用 du -h --max-depth=1 |sort –hr

Linux 如何查找大文件

7

查询到最内层目录后,出现 31G . 这样的显示后,就表明大文件就在该目录下。

可以使用

ll –lh

Linux 如何查找大文件

就会发现 tempfile 占用了30G,这个就是占用比较大的文件

另外还有就是该目录下可能存在大量的文件,单个文件本身不大,但是数量非常多,导致整个目录下文件占用空间非常大,如果不清楚文件具体的用途,可以查询大大文件后,找开发确认是否是垃圾文件,需要删除。

8

重复到每一个目录下执行 du -h --max-depth=1 |sort –hr

直到把所有发现的比较大的目录全部查询一遍,找出所有占用空间比较大的目录或者文件。

9

对于需要删除的文件,执行命令:(注意使用rm 命令一定要慎重,确认好要删除的东西后再执行)

rm -rf xxx

如下,删除tempfile 文件。

Linux 如何查找大文件返回搜狐,查看更多

声明:该文观点仅代表作者本人,搜狐号系信息发布平台,搜狐仅提供信息存储空间服务。

相关文章:

  • 2021-12-15
  • 2021-10-19
  • 2021-12-05
  • 2021-08-27
  • 2021-05-22
  • 2021-12-05
  • 2021-12-05
猜你喜欢
  • 2021-11-18
  • 2021-12-15
  • 2021-11-18
  • 2021-12-05
  • 2021-12-05
  • 2021-08-30
  • 2021-12-15
相关资源
相似解决方案