linux下nginx日誌誤刪後恢復

要想恢復的話,前提是沒有重啓nginx服務。

首先要來介紹下/proc目錄。

/proc 是一個虛擬的目錄,不佔用實際的存儲空間,其實存在於系統的內存中。其實以文件系統的方式爲訪問系統內核的操作提供接口,是動態從系統內核當中讀取所需信息的。

下面就介紹下回復步驟,模擬下恢復的過程。但是前提是沒有重啓nginx服務

1,備份nginx的error日誌,然後刪除error日誌

wKioL1j4C9_BFx1GAAA6gpWFDoo721.png

2,查看nginx的pid,然後到/proc/pid/fd  目錄下

wKiom1j4DIygNHuTAABVY1cOGtA957.png

wKiom1j4DI3QiYUHAACQsSWMHqk685.png

可以看到文件名:2(昨天測試的),3   他們的鏈接指向是errorlog,但是後面會顯示已deleted了。我們用tail看下能看到3還在不停的在刷日誌

3,我們直接把文件3重定向到errorlog就可恢復nginx的日誌了。

wKiom1j4DZjjk8UwAAAUbdOEr3Q667.png



具體的想看進程打開了哪些文件,可以使用lsof命令。

至此,nginx日誌已經恢復,恢復以後看到好像不會繼續往error.log 裏面繼續寫日誌了,需要重啓下。不知道這個重啓是不是必須的。知道可以留言告知下。其他的文件也可以按照此方法來試試。

謝謝


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章