让你LINUX文件恢复变的更加容易(ext3grep)推荐

简介:Ext3grep 是一款很强大的恢复工具,我在它的基础上编写了一个应用脚本,实现自动下载安装配置及突破传统的命令操作让它变的更加傻瓜化,脚本代码在附件和文章的底部Step 1: 建立测试区[root@manage shell]# mkdir /data[root@manage shell]# cd /data/[root@manage data]# dd if=/dev/zero of=disk count=2048000[root@manage data]# mkfs.ext3 disk[root@manage data]# mount -o loop /data/disk /mnt[root@manage data]# cd /mnt/[root@manage mnt]# mkdir dir[root@manage mnt]# touch file1[root@manage mnt]# touch file2[root@manage mnt]# touch file3[root@manage mnt]# mkdir dir/file1[root@manage mnt]# mkdir dir/file2[root@manage mnt]# mkdir dir/file3[root@manage mnt]# mkdir dir/file4[root@manage mnt]# rm -rf * Step 2:脚本使用教程注:不需要下载ext3grep的安装包以及安装,脚本会自动实现1、[root@manage shell]# chmod 700 recovery.py #设置可执行权限2、[root@manage shell]# ./recovery.py #执行脚本执行成功以后会出现如下界面:A键:卸载一个磁盘分区B键:卸载所有磁盘分区C键:直接恢复目录和文件Q键:退出1、我们这里刚才创建一个测试分区,用选项A来恢复操作:2、如上图所示,测试分区磁盘路经为/data/disk,那么我们直接输入这个路经地址注:如果出现此问题“ init_directories.cc:534: void init_directories(): Assertion `lost_plus_found_directory_iter != all_directories.end()’ failed.Aborted”这是由于自定义分区造成,重新格式化下就可以解决”3、扫描分区它会有一段时间,扫描结果显示如下:D:表示删除的目录和文件d:表示目录r:表示文件4、如下图所示共有三个选项,我这里选择1文件恢复1:表示恢复文件2:表示恢复全部目录和文件B:表示反回主菜单5、要求你想恢复的文件,我这里键入“file1”6、恢复文件成功,如果你想继续恢复其它文件,继续如上步骤,不想恢复了按“B键“退出7、如下示所示,如果你想恢复dir目录里面的文件怎么办?没关系跟据蓝色部分的字数,把它输入进去,就可以进入目录恢复蓝色数字为:16001,你直接如下图输入进去8、如下图所示,已经进入到dir目录,恢复文件和刚才操作一样就可以,输入你想恢复的文件名9、我们现在文件恢复完成,选B直接反回主菜单,然后按Q退出脚本,直接查看RESTORED_FILES目录恢复的文件,是成功操作就是这些,大家自己动手操作下就知道了,以下是代码及附件

#!/usr/bin/envpython #RecoverDeletionofData!!!!! importos,re,urllib,sys ifsys.platform!='linux2': sys.exit else: recovery='ext3grep-0.10.2.tar.gz'#RecoveredToos ifnotos.path.isfile(recovery): website='http://ext3grep.googlecode.com/files'+os.sep+recovery print'Downloading.............."%s"'%recovery loading=urllib.urlopen(website) localfile=open(recovery,'wb').write(loading.read()) loading.close #Installext3grep tar_command='tar-zxf"%s"'%recovery checkdir=re.match(recovery[:-7],recovery) make='./configure;make;makeinstall'ifnotos.path.isdir(checkdir.group()): os.system(tar_command) os.chdir(checkdir.group()) os.system(make) #Umountdiskpartitions defmain(): ifos.system('umount-l%s'%opt)!=0: raw_input('Yourdiskpartitionareerrorsintheinput') defres(): os.system("ext3grep%s--restore-file'%s'"%(opt,ans)) classdisk: defpt(self): globalopt ifpart.lower()=='q': sys.exit() elifpart.lower()=='b': os.system('fdisk-l') opt=raw_input('Please,Enterthediskpartitionthatyouwanttoumount:') returnopt main() elifpart.lower()=='c': os.system('fdisk-l') opt=raw_input('Please,Enterthediskpartitionthatyouwanttorecovery:') returnopt #main() elifpart.lower()=='a': os.system('df-Tlh') opt=raw_input('Please,Enterthediskpartitionthatyouwanttoumount:') main() returnopt else: opt='err'#CreateScanandrecovery defsf(self): globalage ifopt!='err': scan='ext3grep%s--ls--inode2'#Scanfiles ifos.system(scan%opt)==0: age='--'*40 printage definfo(self): globalinfo info=raw_input('1:Recoveryfiles\n2:Reoveryanythings\nB:BackMeu\nDoyouwanttorecoverfilesordirectorys:')  if info.lower() == 'b': info = 'stop'returnTrue defexc(self): z=info whilez!='stop': ifz=='1': globalans ans=raw_input('\n********************\nB:StopandBackMeu\n********************\nPlase,youneedtorecoveryfilename:') ifans.lower()=='b': z='stop'try: iftype(int(ans))isint: os.system('ext3grep%s--ls--inode%d'%(opt,int(ans))) except: res() elifz=='2': os.system("ext3grep%s--restore-all"%opt) ans=raw_input('\n********************\nDatarecoverysuccesscases\n********************\nPlease,inputBkeybackMeu:') ifans.lower()=='b': z='stop'else: print'************yourinputerror*************' d.info() z=info#res()%(opt,ans)  d=disk() while0 1:os.system('clear') print'--'*30 print'\t\tA:Unmountadiskpartition\n\n' print'\t\tB:Unmountalldiskpartitions\n\n' print'\t\tC:Recoverfilesanddirectorys\n\n' print'\t\tQ:Quit' print'--'*30 part=raw_input('\t\tPlase,youchoosetooption:') d.pt() d.sf() if('age'indir())isTrue: d.info() d.exc() delage delopt delpart 

怕走崎岖路,莫想登高峰。

让你LINUX文件恢复变的更加容易(ext3grep)推荐

相关文章:

你感兴趣的文章:

标签云: