誤刪不跑路,大牛運維神技能分分鐘恢復

一、背景

突發事件,應用上傳的數據被程序自動刪掉了,可悲的是還沒有數據備份,數據是放在系統的 /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節點中的扇區指針清零,實際上文件還存在磁盤上面,如果磁盤以讀寫方式掛載,這些刪除的數據塊可能會被系統從新分配出去,這些數據塊被覆蓋之後,這些數據就真的丟失了,所以以只讀的方式掛載,儘可能避免數據被覆蓋。


原文:http://blog.51cto.com/wzlinux/2052835


分享到:


相關文章: