不少人在Linux下進行操作的時候可能會遇到自己正在做操作的文件被其他人誤刪除的情況發生,而之前也沒有相應的備份,那可能就需要重寫文件了。下面介紹一種比較實用的恢復誤刪除文件的方法。
一 操作方法
1.1 用戶A正在查看strace.log這個文件;
1.2 這個時候用戶B刪除了這個文件
1.3 此時,C也想看這個文件,發現文件已經沒有;
1.4 這個時候利用losf找到被刪除文件的進程;
1.5 查看進程相關的文件描述符;
1.6 拷貝並恢復文件;
二 原理
在Linux系統的/proc 分區下保存著進程的目錄和名字,包含fd(文件描述符)和其下的子目錄(進程打開文件的鏈接),那麼如果刪除了一個文件,還存在一個 inode的引用:/proc/進程號/fd/文件描述符。我們只要知道當前打開文件的進程pid和文件描述符fd就能利用lsof工具列出進程打開的文 件。
三 注意事項
這種方法只能在文件被使用或者被調用的情況下有效,適合機器沒關機,進程還沒有結束的情況,如果機器已經關機,可以嘗試使用救援模式,利用反刪除工具嘗試恢復,只要數據沒有被覆蓋,還是有較大的幾率找回數據的。