Linux 误删catlina.out导致磁盘空间爆满,无法查询到大文件解决办法

  大概是前俩天吧,发现公司的网站不定时的出现接口调不通的情况,便让手下小弟去服务器上查看一下,小弟告我磁盘空间满了,于是我让他处理一下。结果没想到他直接把 catlina.out 给干掉了。后果可想而知,磁盘空间还是一直是100%,无法使用,他还一脸蒙蔽。大概情况就是这样,下面说一下我解决的过程。

  因为catlina.out 是tomcat 的输出日志,只要运行就会有日志输出,所有不能直接删除,要去清空。即当进程打开了某个文件时,只要该进程保持打开该文件,即使将其删除,它依然存在于磁盘中。这意味着,进程并不知道文件已经被删除,它仍然可以向打开该文件时提供给它的文件描述符进行读取和写入。如果误删,按以下方法就可解决,亲测有效。

1. 首先重启tomcat ,会在log 目录下重新生成 catlina.out 文件 

2. 使用  lsof -n | grep deleted  查看被删除的记录,查出结果按以下排列

COMMAND  PID  USER   FD  TYPE   DEVICE SIZE/OFF  NODE NAME

第二列为进程 pid

3. 杀掉这个被删除掉的 catlina.out 的进程,使用

 kill -9 pid (你的进程号)

4. 查看磁盘空间是否恢复,一般到这一步就会解决

 df -hl

5. 如果没有恢复,就看具体哪个占了内存,cd 到目录下,使用

 du -sh *

然后删掉即可!

再说点题外话,catlina.out 的清空方法:

true > catlina.out

  

原文地址:https://www.cnblogs.com/tg666/p/11410845.html