歡迎光臨
每天分享高質量文章

看完這一篇,誤刪後再也不用跑路了

一、背景


突發事件,應用上傳的資料被程式自動刪掉了,可悲的是還沒有資料備份,資料是放在系統的 /data/webapps/xxxx/upload 目錄下麵,可把我們急壞了,之前又沒有做過資料恢復的測試,然後我找到了一款資料恢復的軟體,成功把刪除的大部分資料找回來了,我的資料恢復過程如下。


二、安裝恢復軟體


1、epel 倉庫安裝

如果我們的源裡面添加了 epel 倉庫的話,我們可以直接使用下麵的命令安裝。


2、原始碼編譯安裝


三、刪除資料查詢


因為我的資料路徑比較深,所以我們需要一步步查詢,可以先從根分割槽 inode 查詢

我們會看到 weapps 目錄的inode,

我們看到專案的 inode,

我們找到了最終刪除資料的目錄 upload

我們可以看到標稱的 Deleted,這些資料就是我們要進行恢復的資料。


四、資料恢復


那我們就恢復指定目錄,以當前分割槽為根分割槽進行路徑設定,專案名進行掩蓋

因為磁碟資料一直在讀寫,所以有些檔案之前的 inode 已經被重新分配了,導致部分資料無法恢復,資料最後會告訴我們有多少檔案沒有回覆,但是大部分資料我們已經恢復了,這就是很重要的事情了。


那我們檢視一下回覆的資料吧,軟體會在當前目錄生成一個目錄RECOVERED_FILES 裡面就是我們恢復的資料。

恢復全部資料可以使用命令


使用方法


extundelete –help

其中,引數(options)有:
–version, -[vV],顯示軟體版本號。
–help,顯示軟體幫助資訊。
–superblock,顯示超級塊資訊。
–journal,顯示日誌資訊。
–after dtime,時間引數,表示在某段時間之後被刪的檔案或目錄。
–before dtime,時間引數,表示在某段時間之前被刪的檔案或目錄。

動作(action)有:
–inode ino,顯示節點“ino”的資訊。
–block blk,顯示資料塊“blk”的資訊。
–restore-inode ino[,ino,…],恢覆命令引數,表示恢復節點“ino”的檔案,恢復的檔案會自動放在當前目錄下的RESTORED_FILES檔案夾中,使用節點編號作為副檔名。
–restore-file ‘path’,恢覆命令引數,表示將恢復指定路徑的檔案,並把恢復的檔案放在當前目錄下的RECOVERED_FILES目錄中。
–restore-files ‘path’,恢覆命令引數,表示將恢覆在路徑中已列出的所有檔案。
–restore-all,恢覆命令引數,表示將嘗試恢復所有目錄和檔案。
-j journal,表示從已經命名的檔案中讀取擴充套件日誌。
-b blocknumber,表示使用之前備份的超級塊來開啟檔案系統,一般用於檢視現有超級塊是不是當前所要的檔案。
-B blocksize,透過指定資料塊大小來開啟檔案系統,一般用於檢視已經知道大小的檔案。


在資料刪除之後,首先要解除安裝被刪除資料所在的磁碟或是分割槽,如果是系統根分割槽遭到誤刪除,就需要進入單使用者樣式下,將根分割槽以只讀的方式掛載。


原因:因為檔案刪除之後,僅僅是將檔案的inode節點中的扇區指標清零,實際上檔案還存在磁碟上面,如果磁碟以讀寫方式掛載,這些刪除的資料塊可能會被系統從新分配出去,這些資料塊被改寫之後,這些資料就真的丟失了,所以以只讀的方式掛載,盡可能避免資料被改寫。

作者:wzlinux

來源:http://blog.51cto.com/wzlinux/2052835



————近期開班————

《馬哥Linux雲端計算及架構師》課程,由知名Linux佈道師馬哥創立,經歷了8年的發展,聯合阿裡巴巴、唯品會、大眾點評、騰訊、陸金所等大型網際網路一線公司的馬哥課程團隊的工程師進行深度定製開發,課程採用 Centos7.2系統教學,加入了大量實戰案例,授課案例均來自於一線的技術案例,自動化運維、Devops、雲服務、python等技能一站式搞定,掌握2018年linux雲端計算高薪未來。

28期面授班:2018年01月08號(鄭州)

29期網路班:2018年02月10號(網路)

掃描二維碼領取學習資料

更多Linux好文請點選【閱讀原文】哦

↓↓↓

贊(0)

分享創造快樂

© 2024 知識星球   網站地圖