今天小编给大家分享的是linux误删文件后的恢复方法,相信很多人都不太了解,为了让大家更加了解linux误删文件后的恢复方法,所以给大家总结了以下内容,一起往下看吧。一定会有所收获的哦。
linux不像windows有个回收站,使用<代码> rm rf *> 代码基本上文件是找不回来的。
那么问题来了:
对于linux下误删的文件,我们是否真的无法通过软件进行恢复呢?
答案当然是否定的,对于误删的文件,我们还是能通过软件恢复过来的。对于误删文件还原可以分为两种情况:
- <李>
一种是删除以后在进程存在删除信息
李> <李>一种是删除以后进程都找不到,只有借助于工具还原。
李>接下来以例子分别解说下两种不同的误删还原方式:
<强>误删除文件进程还在的情况:强>
这种一般是有活动的进程存在持续标准输入或输出,到时文件被删除后,进程PID依旧存在。这也是有些服务器删除一些文件但是磁盘不释放的原因。
打开一个终端对一个测试文件做猫追加操作:
[root@docking ~] #回声“这是DeleteFile测试!”比;deletefile.txt root@docking ~ # ls deletefile.txt (root@docking ~) #猫在祝辞deletefile.txt SomeLine添加到deletefile为了好玩。
打开另外一个终端查看这个文件可以清楚看到内容:
root@docking ~ # ls deletefile.txt #猫deletefile.txt root@docking ~ 这是DeleteFile测试。 SomeLine添加到deletefile为了好玩。
此时,删除文件<代码> rm - f deletefile。txt 代码>
root@docking ~ # rm - f deletefile.txt root@docking ~ # ls #命令查看这个目录,文件已经不存在了,那么现在我们将其恢复出来。
- <李>
lsof查看删除的文件进程是否还存在。
李> <李>如没有安装请自行<代码> yum安装lsof> 代码或者<代码> apt-get安装lsof 代码>
李>1,类似这种情况,我们可以先lsof查看删除的文件是否还在
root@docking ~ # lsof | grep deletefile 猫21796根1 w注册253,1 63 138860/root/deletefile。txt(删除)
2,恢复<代码> cp/proc/pid/fd/1/指定目录/文件名代码>
进入进程目录,一般是进入/proc/pid/fd/,针对当前情况:
root@docking ~ # cd/proc/21796/fd (root@docking fd) #噢 总用量0 lrwx - - - - - - 1根根64年1月18日二二21 0→/dev/pts/0 l-wx - - - - - - 1根根64年1月18日二二21 1→/root/deletefile。txt(删除) lrwx - - - - - - 1根根64年1月18日二二21 2→/dev/pts/0
恢复操作:
(root@docking fd) # 1 ~/deletefile.txt.backup cp (root@docking fd) #猫~/deletefile.txt.backup 这是DeleteFile测试。 SomeLine添加到deletefile为了好玩。
3,恢复完成。
<强>误删除的文件进程已经不存在,借助于工具还原强>
准备一些文件目录
#准备一份挂载的盘 mkdir backuptest cd backuptest mkdir deletetest mkdir deletetest/innerfolder 回声“删除一个文件夹测试!”比;deletetest/innerfolder/deletefile.txt 回声“tcpdump: x: 172:72::/:/sbin/nologin"比;tmppasswd
最后准备的目录结构如下:
taroballs@taroballs-PC:/媒体/taroballs/taroballs/backuptest $ cd . . taroballs@taroballs-PC:/媒体/taroballs/taroballs backuptest/美元树 backuptest/├──deletetest │└──innerfolder │└──deletefile.txt └──tmppasswd 2目录,文件
现在开始删除该目录<代码> rm射频backuptest/代码>
taroballs@taroballs-PC:美元/媒体/taroballs/taroballs rm射频backuptest/taroballs@taroballs-PC:/媒体/taroballs/taroballs $ ls - l 总用量0
这种情况一般是没有守护进行或者后台进程对其持续输入,所以删除就真的删除了.lsof也看不到,故需要采用工具进行恢复。
现在开始进行误删除文件的恢复。
我们采用的工具是extundelete第三方工具。恢复步骤以及注意事项如下:
- <李>
停止对当前分区做任何操作,防止inode被覆盖.inode被覆盖基本就告别恢复了。
李> <李>夸张一点讲,比如停止所在分区的服务,卸载目录所在的设备,有必要的情况下都可以断网。