首页 > 代码库 > Linux 解决文件删除了但磁盘可利用率没变

Linux 解决文件删除了但磁盘可利用率没变

    昨天收到zabbix的报警邮件,有一台服务器的 /home 目录的使用率达到了90%以上,查了一下,发现MongoDB的数据文件放到这个目录下,导致磁盘使用率很高,而这个MongoDB的数据现在又都不用了,于是就直接把它的数据文件删除了,也没做其他任何操作。可是今天zabbix上却显示/home的使用率达到了96%,上去一看,发现一个奇怪的现象

      明明/home目录只使用了12G  ,但是df -h却显示使用了64G ,还有52G 被谁使用了?一直差不出原因,磁盘马上就要被写满了,焦急啊!

后来在一个运维的群里把情况说了一下,马上就有大神说出了原因及解决办法:如果进程一直在运行,删除该进程的文件后,需要重启该进程才能释放进程所占用的文件句柄。

下面是我的解决办法,在此备忘,也希望能帮助那些遇到同样问题的同学。

ls /home(所需查询的目录名) | grep delete  会列出来该目录下已经删除的文件,如下图:

    果然有之前我删除的文件信息,文件句柄一直没释放。于是,我重启了MongoDB ,再看看:

    可用空间已经回来啦!