要想恢復的話,前提是沒有重啓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 裏面繼續寫日誌了,需要重啓下。不知道這個重啓是不是必須的。知道可以留言告知下。其他的文件也可以按照此方法來試試。
謝謝