码迷,mamicode.com
首页 > 系统相关 > 详细

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

时间:2016-11-30 17:49:22      阅读:293      评论:0      收藏:0      [点我收藏+]

标签:lsof   extundelete

参考 http://wandiankafei.blog.51cto.com/10878910/1716201


方案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  恢复成功


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


本文出自 “渐行渐远” 博客,请务必保留此出处http://825536458.blog.51cto.com/4417836/1878118

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

标签:lsof   extundelete

原文地址:http://825536458.blog.51cto.com/4417836/1878118

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!