欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  php教程

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

程序员文章站 2022-03-19 20:48:42
...
方案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 恢复成功


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

相关标签: linux