當意識到誤刪除文件後,切忌千萬不要再頻繁寫入了,不然你的數據恢復的數量將會不多。 而咱們要作的是,第一時間把服務器上的服務所有停掉,直接killall 進程名 或者 kill -9 pid 。 而後把誤刪除文件所在分區,從新掛載成ro,只讀的 (mount -o ro /dev/sdb2 /data/)。
而後咱們須要去下載和安裝一個工具叫作 extundelete
1.安裝依賴包
# yum install e2fsprogs* -y
2.下載並安裝extundelete
# wget http://nchc.dl.sourceforge.net/p ... elete-0.2.4.tar.bz2
# tar -jxvf extundelete-0.2.4.tar.bz2
# cd extundelete-0.2.4
# ./configure --prefix=/usr/local/extundelete
# make && make install
3.驗證是否安裝成功
# cd /usr/local/extundelete/bin
# ./extundelete -v
---------------------
extundelete version 0.2.4
libext2fs version 1.41.12
Processor is little endian.
---------------------
假如咱們誤刪除文件所在分區爲/dev/sdb2
恢復步驟以下:
/usr/local/extundelete/bin/extundelete /dev/sdb2 --inode 2 //能夠掃描哪些文件被刪除了
假如咱們有一個文件叫作1.txt被刪除了。 那麼恢復它的命令爲:
/usr/local/extundelete/bin/extundelete --restore-file 1.txt /dev/sdb2
被恢復的文件在 當前目錄下的 RECOVERED_FILES/ 目錄
ls ./RECOVERED_FILES/ 能夠看到有1.txt
而想恢復整個分區上的文件能夠這樣:
/usr/local/extundelete/bin/extundelete --restore-all /dev/sdb2
恢復後的文件也是在 ./RECOVERED_FILES/ 下,可否恢復就看你的運氣好很差了。
固然後續工做還有:
1. 從新掛載該分區爲可寫
2. 備份一下重要數據
3. 覆蓋咱們恢復出來的數據
4. 重啓服務器,恢復各類服務node