linux磁盘占用很大 但找不到大文件,Linux磁盘被占用找不到占用文件,如何解决?...

Zabbix发信提示根磁盘空间使用已>80%,登录Linux主机后,一顿检查发现,磁盘空间确实占用了80%,但是居然找不到什么文件占用了磁盘空间??

一、问题点现象说明

1.1 查看磁盘使用情况(如下图),显示根磁盘空间已用‘56G’

[root@public46 ~]#df -h

linux磁盘占用很大 但找不到大文件,Linux磁盘被占用找不到占用文件,如何解决?..._第1张图片

1.2 查看各目录的磁盘占用情况

[root@public46 ~]#du -h --max-depth=1 /

linux磁盘占用很大 但找不到大文件,Linux磁盘被占用找不到占用文件,如何解决?..._第2张图片

从上图可以发现,除去/web目录,根目录也就用了10G左右的磁盘空间,为什么会显示已用‘56G’呢?

二、问题点排查

2.1 查看根磁盘空间的node节点使用情况:正常

linux磁盘占用很大 但找不到大文件,Linux磁盘被占用找不到占用文件,如何解决?..._第3张图片

2.2 查找根磁盘,大小>100M的文件(排除了“/web”目录):正常

[root@public46 ~]# find / -path "/web" -prune -o -size +100M \

-print0 |xargs -0 du -sh

linux磁盘占用很大 但找不到大文件,Linux磁盘被占用找不到占用文件,如何解决?..._第4张图片

参数说明:

-path "/web" -prune:排除了“/web”目录进行条件搜索

2.3 用‘lsof’命令检查进程的文件句柄情况:异常

[root@public46 ~]#yum -y install lsof

[root@public46 ~]#lsof -n / |grep deleted

原因:上图可以发现,大量文件已经删除,但是有两个进程‘iostat’和‘zabbix-server’仍然占用着文件句柄,导致删除的文件的磁盘空间一直没有释放!

三、问题点解决

原因找到,问题就很好解决了,重启或者kill掉占用的进程即可

3.1 批量关闭iostat进程(如果只有一个进程,可以直接kill掉)

[root@public46 ~]#ps aux |grep iostat|gawk '{print $2}' |xargs kill -9

3.2 重启zabbix-server进程

[root@public46 ~]#systemctl restart zabbix-server

3.3 再次查看磁盘使用情况

[root@public46 ~]#df -h

linux磁盘占用很大 但找不到大文件,Linux磁盘被占用找不到占用文件,如何解决?..._第5张图片

磁盘空间使用情况已经恢复正常!

你可能感兴趣的:(linux磁盘占用很大,但找不到大文件)