linux系统误删除文件怎么恢复

高洛峰
高洛峰 原创
2016-12-01 14:19:48 1039浏览

方案1)现在我向大家介绍使用extundelete恢复文件(适合rhel6.X系统的ext4)

安装:

下载 extundelete-0.2.4.tar.bz2  wget  http://netassist.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 (这步出现错误,请看下文)
yum install  e2fsprogs-devel-1.41.12-18.el6.x86_64.rpm

然后再次执行,成功

make && make install

恢复:

extundelete /dev/sda4 --inode 2 (看到你所删除的文件)

恢复单个目录:

extundelete /dev/sdb1 --restore-directory /mongodb ##mongodb是一个目录

恢复所有误删文件:

extundelete /dev/sdb1 --restore-all

恢复一个单个文件:

extundelete /dev/sdb1 --restore-file a.txt


方案2)使用lsof自带一个的神秘功能

原理:大多数与 lsof 相关的信息都存储于以进程的 PID 命名的目录中

假如由于误操作将/var/log/messages文件删除掉了,那么这时要将/var/log/messages文件恢复的方法

如下:

首先使用lsof来查看当前是否有进程打开/var/logmessages文件,如下:

# lsof |grep /var/log/messages

syslogd 1283 root 2w REG 3,3 5381017 1773647 /var/log/messages (deleted)

从 上面的信息可以看到 PID 1283(syslogd)打开文件的文件描述符为 2。同时还可以看到/var/log

/messages已经标记被删除了。


恢复:

cat /proc/1283/fd/2 > /var/log/messages 恢复成功


对于许多应用程序,尤其是日志文件和数据库,这种恢复删除文件的方法非常有用。


声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。