1. 程式人生 > >Linux伺服器恢復刪除資料

Linux伺服器恢復刪除資料

wget  http://zy-res.oss-cn-hangzhou.aliyuncs.com/server/extundelete-0.2.4.tar.bz2
執行如下命令,安裝tundelete的相關依賴和庫:

yum -y install  bzip2  e2fsprogs-devel  e2fsprogs  gcc-c++ make
執行如下命令,解壓extundelete到當前目錄下。

tar -xvjf extundelete-0.2.4.tar.bz2
cd extundelete-0.2.4
執行如下命令,檢測系統配置,並生成makefile:

./configure
執行如下命令,編譯安裝extundelete軟體:

make && make install
完成後,通過執行結果可以看到預設檔案是安裝到usr/locla/bin的路徑下。
 執行如下命令,進入新增src目錄,並檢視extundelete可執行檔案。

cd src
ls
   至此,完成extundelete工具的全部安裝部署。
   
   
 現在模擬資料刪除
 
 
 執行如下命令,檢視分配的資料盤 /dev/vdb:
fdisk -l
執行如下命令,對資料盤進行分割槽:
fdisk /dev/vdb
  Command(m for help)輸入 n;
  Command action 輸入p;
  Partition number(1-4,default 1)輸入1;
  First cylinder 和 Last cylinder 處直接輸入 回車,使用預設的配置;
  Command(m for help)輸入 w,從而使上面的配置生效。
  執行如下命令,對資料盤進行格式化:
mkfs.ext3 /dev/vdb1
通過如下步驟,建立檔案路徑,並掛載磁碟,以及新建實驗資料:
執行如下命令,建立檔案路徑:
mkdir /alidata
執行如下命令,新建一個檔案“hello.txt”,寫入“Hello Aliyun”資訊,並檢視資料:

echo "Hello Aliyun">/alidata/hello.txt
執行如下命令,生成hello.txt檔案的md5值。主要用於下一小節恢復檔案時,進行校驗。
md5sum hello.txt
執行如下命令,進入/alidata 路徑下,並刪除hello.txt檔案:

cd /alidata
rm -rf hello.txt


在真實的工作環境中,若已確認沒有資源佔用,可跳過此步驟。
fuser -k /alidata       會斷開xshell

執行如下命令,解除安裝資料盤
umount /dev/vdb1
執行如下命令,使用extundelete工具,對整個 /dev/vdb1 分割槽進行搜尋,並檢視hello.txt的 Inode number 和 Delete status。

extundelete --inode 2 /dev/vdb1
說明:--inode引數值設為 2 ,是對整個分割槽進行搜尋。如果需要進入目錄搜尋,只需要制定目錄 I 節點即可。
 執行如下命令,使用extundelete工具,恢復刪除檔案:
 extundelete  --restore-inode 12  /dev/vdb1
 說明:通過上一步,我們可以看到 hello.txt 的節點值為 12 。--restore-inode 引數值是需要恢復的檔案 Inode number
 執行如下命令,可以檢視到當前目錄下,新增一個 RECOVERED_FILES 資料夾,並檢視到檔案 file.12。
  執行如下命令,檢視恢復的檔案md5值,判斷是否恢復原有的檔案:



參照

rm -rf bin/      這是模擬刪除
 umount alidata/    解除安裝此分割槽
 ls -id alidata/     檢視inode碼
 extundelete /dev/vdb1 --restore-inode 52429  通過inode節點恢復
 extundelete /dev/vdb1 --restore-all   恢復所有檔案