Linux伺服器恢復刪除資料
阿新 • • 發佈:2019-01-12
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值,判斷是否恢復原有的檔案:
執行如下命令,安裝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 恢復所有檔案