磁盘满了,却找不到大文件

某天,突然接到老大电话,说公司网站打不开了,跑去一看,老毛病,磁盘满了。之前磁盘满了,都是由于项目的日志引起的,服务器上有php和java项目,去删除日志就可以了。

我负责php项目,登录php项目一看,我靠,日志才几百兆,于是电话java同事,让他看下,他看了说也只有几百兆,我俩都清理了,之后一会儿磁盘就又满了。

我首先想到的是不是被攻击了啊,先找下大文件,于是在根目录下,看下各个目录的磁盘占用情况。

du -sh /

出来的结果是一共使用了16G,没有一个目录有大文件的,可以运行df -lh,显示剩余空间0,已用150G。

为了确认问题,我还切入到了日志的目录,专门看了,确实php和java都没有日志。

这就很奇怪了,查看剩余空间和已用空间数据对不上,还相差100多个G。

于是,百度了下,原来有的文件可能删除了,但是并没有被释放,就像进入回收站一样,于是用lsof命令查看那些删除了但是还打开着文件句柄的文件,并按照大小顺序排列。

lsof | grep deleted | sort -nr

结果发现有一个tomcat日志文件,有100多个G,状态为删除,但是文件句柄仍然被打开了。

于是kill掉这个tomcat进程,然后重启tomcat。

再df -lh,空间瞬间空闲了100多个G。

猜你喜欢

转载自blog.csdn.net/maquealone/article/details/83054103