要想恢复的话,前提是没有重启nginx服务。
首先要来介绍下/proc目录。
/proc 是一个虚拟的目录,不占用实际的存储空间,其实存在于系统的内存中。其实以文件系统的方式为访问系统内核的操作提供接口,是动态从系统内核当中读取所需信息的。
下面就介绍下回复步骤,模拟下恢复的过程。但是前提是没有重启nginx服务
1,备份nginx的error日志,然后删除error日志
2,查看nginx的pid,然后到/proc/pid/fd 目录下
可以看到文件名:2(昨天测试的),3 他们的链接指向是errorlog,但是后面会显示已deleted了。我们用tail看下能看到3还在不停的在刷日志
3,我们直接把文件3重定向到errorlog就可恢复nginx的日志了。
具体的想看进程打开了哪些文件,可以使用lsof命令。
至此,nginx日志已经恢复,恢复以后看到好像不会继续往error.log 里面继续写日志了,需要重启下。不知道这个重启是不是必须的。知道可以留言告知下。其他的文件也可以按照此方法来试试。
谢谢
时间: 2024-10-26 04:29:42