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为秒数。