linux 文件恢复工具extundelete安装使用

linux | 2019-09-13 10:02:39

老话说的好啊,常在河边走,哪有不湿鞋,做运维久了,哪怕不小心搞错一个符号,也能导致 你在rm的时候付出惨重的代价,linux没有回收站,所以你考虑要跑路?不急可以恢复的。这久要用到extundelete linux恢复工具。


在安装extundelete之前需要安装e2fsprogs和e2fsprogs-libs两个依赖包。e2fsprogs和e2fsprogs-libs安装非常简单。


1.安装依赖包

# yum install e2fsprogs* -y


2.下载并安装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 --prefix=/usr/local/extundelete 
# make && make install

3.验证是否安装成功 

# cd /usr/local/extundelete/bin 
# ./extundelete -v

---------------------

extundelete version 0.2.4

libext2fs version 1.41.12

Processor is little endian.

---------------------



4.设置环境变量

# echo "PATH=/usr/local/extundelete/bin:$PATH" >> /etc/profile
# echo "export PATH" >> /etc/profile
# source /etc/profile

5.上传一些图片,安装包等文件到/data目录

# cd /data
# yum install lrzsz -y
# rz

-------------

选择本地文件.....

-------------

# ls

------------------

lost+found  mysql-5.6.10.tar.gz  nginx.conf  pic.jpg

------------------


6.全部删除

# rm -rf *

7.查看被删除文件

1).查看前需卸载该磁盘分区

# cd ~
# umount /dev/sdb1

2).查看文件

注:一般一个分区挂载到一个目录下时,这个”根”目录的inode值为2

我们为了查看根目录所有文件,所以查看分区inode为2的这个部分

# extundelete /dev/sdb1 --inode 2

--------------------------------

.....


File name                                      | Inode number | Deleted status

.                                                2

..                                                2

lost+found                                        11            Deleted

mysql-5.6.10.tar.gz                              12            Deleted

nginx.conf                                        13            Deleted

pic.jpg                                          14            Deleted

--------------------------------

注:标记为”Deleted”的文件则是被删除的文件


8.恢复指定的文件

注: 默认被删文件会恢复到当前目录下的RECOVERED_FILES目录中去

# extundelete --restore-file pic.jpg /dev/sdb1  
# cd RECOVERED_FILES/
# ll

----------------

-rw-r--r-- 1 root root 52592 8月  13 07:18 pic.jpg

----------------



9.完全恢复设备上文件

# extundelete --restore-all /dev/sdb1
# ll

-----------------------------------

总用量 34464

-rw-r--r-- 1 root root 35174149 8月  13 07:24 mysql-5.6.10.tar.gz

-rw-r--r-- 1 root root    4551 8月  13 07:24 nginx.conf

-rw-r--r-- 1 root root    52592 8月  13 07:18 pic.jpg

-rw-r--r-- 1 root root    52592 8月  13 07:24 pic.jpg.v1

-----------------------------------

注:这里完全恢复并不会把之前恢复的pic.jpg文件覆盖掉,而是重命名为pic.jpg.v1


10.恢复指定的时间点后被删文件

1).指定一个时间点

# date -d "Sep 4 03:09:13 2013" +%s

------------------

1378235353

------------------

2).恢复这个时间点后的文件

# extundelete --restore-all --after “1378235353” /dev/sdb1

-------------------- 

..........

--------------------

注:如果要恢之前的就用before参数。extundelete命令与after结合使用,在进行恢复时非常有用,可以过滤掉那太旧的文件,减小恢复压力。


11.检验是否恢复成功

# md5sum RECOVERED_FILES/mysql-5.6.10.tar.gz

------------------------------------

9dcee911fb4bc7e977a6b63f4d3ffa63  RECOVERED_FILES/mysql-5.6.10.tar.gz

------------------------------------

上传刚才误删的mysql安装包

# rz

选择文件...

# md5sum mysql-5.6.10.tar.gz

--------------------------------- 

9dcee911fb4bc7e977a6b63f4d3ffa63  mysql-5.6.10.tar.gz

---------------------------------

MD5值相同,恢复成功。。。

登录后即可回复 登录 | 注册
    
关注编程学问公众号