2
我有一個後臺進程運行了很長時間,並使用文件在其中寫入日誌。它的尺寸增加得太大了。我剛剛刪除了該文件,並創建了一個具有相同名稱和相同權限和所有權的新文件,但新文件沒有得到任何條目。 舊文件被標記爲已刪除,並且正在被lsof命令可以清楚地看到的進程仍在使用。恢復已刪除的文件滯留在Linux shell進程中
Plz讓我知道,有什麼辦法可以恢復該文件和。
您的積極迴應將非常有幫助。
我有一個後臺進程運行了很長時間,並使用文件在其中寫入日誌。它的尺寸增加得太大了。我剛剛刪除了該文件,並創建了一個具有相同名稱和相同權限和所有權的新文件,但新文件沒有得到任何條目。 舊文件被標記爲已刪除,並且正在被lsof命令可以清楚地看到的進程仍在使用。恢復已刪除的文件滯留在Linux shell進程中
Plz讓我知道,有什麼辦法可以恢復該文件和。
您的積極迴應將非常有幫助。
如果文件仍然被某個進程打開,您可以使用/proc
文件系統恢復它。
首先,檢查該進程中打開文件的文件描述符編號。如果該文件是在過程開始與PID X
,使用如下命令lsof
:
lsof -p X
這將顯示當前由X
打開的文件列表。第4列顯示文件描述符,最後一列顯示文件所在的掛載點和文件系統的名稱(在文件描述符編號後忽略u
,r
和其他標誌,它們只是指示是否打開文件以供讀取,書寫等)
如果文件描述符編號爲Y
,則可以在/proc/X/fd/Y
中訪問其內容。所以,像這樣的東西會恢復它:
cp /proc/X/fd/Y /tmp/recovered_file