extundelete
大家基本都知道,在linux上誤刪除了東西后果是很嚴重的,尤其是在服務器上誤刪除了東西,對於字符終端,想要實現恢復刪除的數據更是難上加難,對於Linux誤刪除了重要的東西,雖然我一直嘲笑過這個梗,說使用了以下的命令就會被公司或者學校開除,但是開玩笑的時候壓根沒想過自己也會有這一天腦袋秀逗的時候,因此在此貼上程序,和處理過程,如果小夥伴們也有類似的情況,後悔已經是來不及了,只能想辦法讓後果降到最低,儘量恢復之前的數據
rm -rf *
使用了上述命令的話,我可以很負責任的告訴你,想要完全還原文件夾內的所有內容已經是不可能的事情了,如果只是單個文件,那還是有希望找回來的,因爲對於文件夾可能會使得找回來的文件放錯了子文件夾的位置等等,因此結合親身經歷告訴你們,如果是一大堆網站的話,就遭殃了。下面講具體的操作流程。
一、查看所刪除的文件或者文件夾inode
ls -id /
df -l
如上述爲查看根目錄的inode值,並且查看磁盤分別掛載在哪個區下和掛載的磁盤名,因爲接下來會用到
二、將磁盤卸載,即(umount)
umount /data
這邊假設文件或者文件夾所在的磁盤掛在在 /data 之下
三、安裝extundelete
wget http://nchc.dl.sourceforge.net/project/extundelete/extundelete/0.2.4/extundelete-0.2.4.tar.bz2
tar jxvf extundelete-0.2.4.tar.bz2
cd extundelete-0.2.4
./configure
make
make install
到此安裝成功
extundelete --help
可以通過這個命令查看幫助
恢復單個文件
extundelete /dev/sdc1 --inode 2
通過此命令查看哪些是已經刪除的文件和文件夾,後面的Deleted status顯示的內容即是刪除的內容,/dev/sdc1爲所在的磁盤名
extundelete /dev/sdc1 --restore-file filename
通過上述命令恢復文件
恢復文件夾
extundelete /dev/sdc1 --restore-derectory /directoryname
通過上述恢復文件夾下的所有內容,不過效果不理想,因爲很多子文件夾的名字都找不回來了,還出現了文件錯亂的結果
恢復所有刪除的數據
extundelete /dev/sdc1 --restore-all
上句恢復所有的內容,謹慎使用
恢復某個時間段內的誤刪數據
extundelete --after 1379244444 --restore-all
可以用date +%s顯示當前的時間值,該時間值是秒數,在1970-01-01 00:00:00 UTC時間之後算起的。若想恢復三個鐘頭之內的數據,可以通過date +%s來得到當前秒數然後減去3*60*60=10800來獲取大概刪除前的時間,上句1379244444爲秒數。