您现在的位置是:首页 >技术交流 >Linux 清理磁盘空间&使用du指令排查服务器磁盘占用过大的文件网站首页技术交流

Linux 清理磁盘空间&使用du指令排查服务器磁盘占用过大的文件

Archie_java 2023-06-26 00:00:02
简介Linux 清理磁盘空间&使用du指令排查服务器磁盘占用过大的文件

Linux 清理磁盘空间

1,确定磁盘是否满了

命令:df -h

参数说明:

  • -a:列出所有的文件系统,包括系统特有的/proc等文件系统
  • -k:以KB的容器显示各文件系统
  • -m:以MB的容量显示各文件系统
  • -h:以人们较易阅读的GB,MB,KB等格式自行显示
  • -H:以 M=1000K代替M=1024K的进位方式
  • -T:连同该分区的文件系统名称(例如ext3)也列出
  • -i:不用磁盘容量,而以inode的数量来显示

img

结果参数说明:

  • Filesystem:代表该文件系统是在哪个分区,所以列出设备名称
  • 1k-blocks:说明下面的数字单位是1KB,可利用-h或-m来改变容量
  • Used:使用掉的磁盘空间
  • Avail:剩下的磁盘空间大小
  • Use%:磁盘使用率
  • Mounted on:磁盘挂载的目录所在(挂载点)

显示每个目录的大小

命令:du -sh /*

参数说明:

  • -a:列出所有的文件与目录容量,因为默认仅统计目录下面的文件量而已
  • -h:以人们较易读的容量格式(G/M)显示
  • -s:列出总量,而不列出每个个别的目录占用了容量
  • -S:不包括子目录下的统计,与-s油电差别
  • -k:以KB列出容量显示
  • -m:以MB列出容量显示

img

与df不一样的是,du会直接到文件系统内查找所有的文件数据。

du -S 显示当前目录下文件总容量(不好汉子目录),而du则在最后显示该目录所有文件的总容量(包含子目录)。

2,一般是直接去清理log,如果不是,则查找最大文件夹

命令:du -h --max-depth=1

寻找当前目录,哪个文件夹占用空间最大。

3,进入最大的那个文件夹,然后将文件以大到小顺序展现

命令:ls -lhS

将当前目录下的文件以大到小顺序展现。

img

4,清理文件。清理文件时,如果进程正在使用,使用rm -f 删除时要么会报错,要么即使删除了磁盘依旧是满的,所以使用清空文件内容命令优于删除此文件。

命令:echo ‘’>catalina.out

5,查看清理结果

命令: ls -lh 文件

服务器宕机了怎么办

启动机器,看能否登陆,如果能登陆,请检查

  • 是否是应用程序导致内存溢出或泄露
  • 是否是进程过多或者不断创建,耗尽资源导致
  • 是否是数据库程序死锁,连接数过多导致
  • 是否是应用程序异常导致
  • 是否是流量负载过大导致
  • 是否是遭受黑客入侵攻击导致
  • 是否是误操作导致

如果无法查看故障现场,则可以查询系统日志看出异常记录。

Linux经常死机、卡住

  • 检查服务器进程与服务是否占用了太多的内存或是否没有是否内存,当服务器内存用完后,然后就会很快宕机
  • 看看/var/spool/cron 里面是否有cron(计划任务、自动任务)在对应时间段执行
  • 检查web服务器的参数是否超过了服务器的性能,如允许最大连接数过高等
  • 进程数很高,服务瘫痪,机器假死(例如zombie进程是否过多,一直占用资源)
  • cat /var/log/message 查看系统日志是否异常
  • 检查磁盘是否有坏块(可使用badblocks命令配合参数)
  • 内核消耗过大,查看是否有瞬间资源占用过大的进程或服务
  • ps -ef 查看进程是否异常,是否存在 攻击



Linux使用du指令排查服务器磁盘占用过大的文件

  • 查看服务器磁盘占用,可以看到根目录已占用99%了,需要立即处理。
df -h

img

查看磁盘占用

  • 进入根目录并查看根目录下的一级目录占用情况,可以发现/var目录占用空间最大,然后继续排查/var目录的内容
cd /
du -h --max-depth=1

img

根目录占用情况

  • 查看/var目录的占用情况
cd /var
du -h --max-depth=1

img

  • 按照这种方法可以查到是哪个目录占用空间了,我这里查到目录是docker的容器目录:/var/lib/docker/containers,可以看到,有一个容器占用了59G磁盘

    img

    容器占用

  • 查看docker容器,排查问题,可将容器的id和文件夹的名称的前几位做比较即可找出是哪个容器占用资源了。

docker ps -a 

img

文件夹对应容器

  • 找到问题之后即可根据实际情况处理,比如是清理对应文件夹还是对磁盘进行扩容等操作(新版ubuntu磁盘扩容可参考https://www.jianshu.com/p/1d919d64ce10)。
风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。