作者:marco.jiangzy(少帅)
Extundelete是在Linux下,基于开源的数据恢复工具。使用阿里云的云服务器 ECS,您可以方便地安装,及时还原误删除的重要文件。
extundelete不仅能够通过在文件系统的日志中搜索该inode的旧副本来恢复inode的内容,而且如果已删除的条目不存在于文件系统中的目录中,extundelete将仍在日志中的旧副本中查找匹配项。在购买 ECS 实例的同时,手动安装所需的软件。您只需对extundelete进行简单的配置,即可不用担心重要文件的误删除等情况。
此外,现在随着业务的扩展,您可以利用阿里云强大的产品平台,例如:
:回滚快照,镜像恢复等方式
:多台ECS,实现业务的负载均衡,高可用
:利用对象存储 OSS(Object Storage Service),存储静态网页和海量图片、视频等重要数据。
本文档以 CentOS7.2 操作系统为例,介绍如何使用extundelete工具
适用对象:
适用于网站访问量小、少量 ECS 实例的个人用户。
软件及版本:
e2fsprogs-devel e2fsprogs gcc-c++ make
Extundelete-0.2.4
注*extundelete需要libext2fs版本1.39或更高版本来运行,但是对于ext4支持,请确保您有e2fsprogs版本1.41或更新版本(可以通过运行命令“dumpe2fs”并记录其输出的版本)找到
说明:以上版本是写文档时的软件版本。您下载的版本可能与此不同。
部署extundelete工具
下载安装包
https://sourceforge.net/projects/extundelete/files/latest/download
把包通过传输工具(比如ftp)传到ECS某个目录,这里是/home下面。
yum -y install bzip2 e2fsprogs-devel e2fsprogs gcc-c++ make
利用tar -xvjf 解压
cd extundelete-0.2.4
./configure 说明检查成功
make && make install -->编译安装
这个时候会出现src目录,下面有个extundelete可执行文件以及相应路径
关于可执行性文件的用法,可以--help可得
其中参数(options)有:
--version, -[vV],显示软件版本号。
--help,显示软件帮助信息。
--superblock,显示超级块信息。
--journal,显示日志信息。
--after dtime,时间参数,表示在某段时间之后被删的文件或目录。
--before dtime,时间参数,表示在某段时间之前被删的文件或目录。
动作(action)有:
--inode ino,显示节点“ino”的信息。
--block blk,显示数据块“blk”的信息。
--restore-inode ino[,ino,...],恢复命令参数,表示恢复节点“ino”的文件,恢复的文件会自动放在当前目录下的RESTORED_FILES文件夹中,使用节点编号作为扩展名。
--restore-file ‘path‘,恢复命令参数,表示将恢复指定路径的文件,并把恢复的文件放在当前目录下的RECOVERED_FILES目录中。
--restore-files ‘path‘,恢复命令参数,表示将恢复在路径中已列出的所有文件。
--restore-all,恢复命令参数,表示将尝试恢复所有目录和文件。
-j journal,表示从已经命名的文件中读取扩展日志。
-b blocknumber,表示使用之前备份的超级块来打开文件系统,一般用于查看现有超级块是不是当前所要的文件。
-B blocksize,表示使用数据块大小来打开文件系统,一般用于查看已经知道大小的文件。
使用extundelete,模拟数据误删除然后恢复的过程
检查ECS现有的磁盘和可用分区
对/dev/vdb进行分区,格式化,新建目录,挂载,
在/zhuyun下面新建测试文件hello,写入test,命令echo test > hello
md5sum命令用于生成和校验删除前和恢复后俩个文件的md5值
然后rm -rf hello
fuser -k /zhuyun <-- 结束使用某分区的进程树(确认没有资源占用的话,可以跳过此步)
umount /dev/vdb1
extundelete --inode 2 /dev/vdb1 <--为查找某i节点中的内容,使用2则说明为整个分区搜索,如果需要进入目录搜索,只须要指定目录I节点即可。这是可以看到删除的文件名和inode,如图
/usr/local/bin/extundelete --restore-all /dev/vdb1 <--恢复全部删除的文件
这个时候会在执行命令的同级目录下出现RECOVERED_FILES目录,查看是否恢复
通过md5值查看,恢复成功
注*
--restore-inode 12 # --restore-inode 按指定的I节点恢复
--extundelete --restore-all # --restore-all 是全部恢复
您已经成功部署了部署和恢复了文件