本发明涉及通信技术领域,尤其涉及一种文件恢复方法及装置。
背景技术:
Linux是一款免费使用和自由传播的类Unix(尤尼斯)操作系统,因其具有免费的开源特性而被广泛应用;作为系统开发和维护的人来说,因Linux系统因具有安全、轻量、高性能等特性而常常作为服务器被作为开发首选。
Linux的基本思想有两点:第一,一切都是文件;第二,每个软件都有确定的用途。具体来说,相对于操作系统内核而言,系统中的命令、硬件和软件设备、操作系统、进程等都被视为拥有各自特性或类型的文件。
在对文件进行操作的过程中,技术人员难免会出错,有些指令甚至会出现灾难性的后果,导致系统崩溃,软件瘫痪。另外,Linux的开发一般是在命令行模式下操作,在安装和维护的过程中,因为其抽象性很容易误操作,而Linux系统的软件之间高度耦合和关联性,在排错的过程中往往需要花费大量的时间和精力。
技术实现要素:
针对上述问题,本发明提供了一种Linux系统中文件恢复方法及装置,有效解决了执行文件出错时排错给技术人员带来的技术问题。
本发明提供的技术方案如下:
一种Linux系统中文件恢复方法,包括:
S1对Linux系统操作过程中生成的文件进行加密得到对应的哈希值并进行存储;
S2通过虚拟指针指向待恢复文件的哈希值,从而将待恢复文件恢复到预设版本。
在本技术方案中,将系统操作过程中生成的文件都进行加密得到相应的哈希值并存储,在此基础上,通过建立虚拟指针,对存储的文件通过哈希值进行关联索引,以此提高出现复杂报错等情况时的效率,节约技术人员的时间和精力。
进一步优选地,在步骤S1中具体包括:
S11通过版本控制对Linux系统操作过程中生成的文件进行加密得到对应的哈希值并生成该文件对应的版本号;
S12将生成的哈希值和版本号分别与该文件关联存储在指定空间区域。
进一步优选地,在步骤S1中,所述Linux系统操作过程中生成的文件中包括:Linux系统中执行各操作指令生成的操作文件及与操作文件相互依赖的依赖文件。
我们知道,在Linux系统中,一般来说,依赖文件和操作文件都是分区存储,存储地址不关联,且依赖文件是隐性文件,目前还没有相关机制对依赖文件进行查找。而在本技术方案中,依赖文件同样可以采用该方法进行恢复,从而提高了系统维护的效率,保障了系统操作过程中各类文件在存储过程中的安全性能。
进一步优选地,所述操作指令包括:make dir指令、touch指令、tar指令、yum指令以及rpm指令。
进一步优选地,在步骤S2中具体包括:
S21得到待恢复文件的哈希值;
S22虚拟指针根据所述哈希值循环寻址到该待恢复文件存储的空间地址;
S23虚拟指针在具有相同哈希值的文件中查找到待恢复文件,进而将其恢复到预设版本。
本发明中还提供了一种Linux系统中文件恢复装置,包括:
加密模块,用于对Linux系统操作过程中生成的文件进行加密得到对应的哈希值;
存储模块,用于存储该文件及该加密模块加密得到的哈希值;
查找模块,用于通过虚拟指针在存储模块中寻址到待恢复文件,从而将待恢复文件恢复到预设版本。
在本技术方案中,将系统操作过程中生成的文件都进行加密得到相应的哈希值并存储,在此基础上,通过建立虚拟指针,对存储的文件通过哈希值进行关联索引,以此提高出现复杂报错等情况时的效率,节约技术人员的时间和精力。
进一步优选地,所述文件恢复装置中还包括:
版本控制模块,用于管理Linux系统操作过程中文件的各版本并生成对应的版本号;
关联模块,用于将加密模块生成的哈希值和版本控制模块生成的版本号分别与该文件进行关联并存储在存储模块。
进一步优选地,所述Linux系统操作过程中生成的文件中包括:Linux系统中执行各操作指令生成的操作文件及与操作文件相互依赖的依赖文件。
我们知道,在Linux系统中,一般来说,依赖文件和操作文件都是分区存储,存储地址不关联,且依赖文件是隐性文件,目前还没有相关机制对依赖文件进行查找。而在本技术方案中,依赖文件同样可以采用该方法进行恢复,从而提高了系统维护的效率,保障了系统操作过程中各类文件在存储过程中的安全性能。
进一步优选地,所述操作指令包括:make dir指令、touch指令、tar指令、yum指令以及rpm指令。
进一步优选地,在所述查找模块中,虚拟指针根据待恢复文件的哈希值循环寻址到其存储的空间地址,进一步在具有相同哈希值的文件中查找到待恢复文件,从而将其恢复到预设版本。
附图说明
下面将以明确易懂的方式,结合附图说明优选实施方式,对上述特性、技术特征、优点及其实现方式予以进一步说明。
图1为本发明中Linux系统中文件恢复方法一种实施方式流程示意图;
图2为本发明中Linux系统中文件恢复方法另一种实施方式流程示意图;
图3为本发明中Linux系统中文件恢复方法另一种实施方式流程示意图;
图4为本发明实例中创建text文件示意图;
图5为本发明实例中在创建的text文件中写入数据示意图;
图6为本发明实例中保存写入数据的text文件示意图;
图7为本发明实例中文件出错时还原创建的text文件示意图;
图8为本发明实例中在创建text文件目录中查看该text文件示意图;
图9为本发明中Linux系统中文件恢复装置一种实施方式示意图;
图10为本发明中Linux系统中文件恢复装置另一种实施方式示意图。
附图标记:
100-文件恢复装置,110-加密模块,120-存储模块,130-查找模块,140-版本控制模块,150-关联模块。
具体实施方式
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对照附图说明本发明的具体实施方式。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,并获得其他的实施方式。
我们知道,Linux系统的开发一般是在命令行模式下操作,且指令都是以文件的形式存在,由系统本身的抽象性特性,在安装和维护的过程中很容易误操作。在文件出错时,技术人员即时耗费了大量的时间也找不出问题所在,只能通过还原到文件生成之前的方式来解决。因而,本发明提供了一种Linux系统中文件恢复方法,如图1所示为一种实施方式流程示意图,从图中可以看出,在该文件恢复方法中包括:S1对Linux系统操作过程中生成的文件进行加密得到对应的哈希值并进行存储;S2通过虚拟指针指向待恢复文件的哈希值,从而将待恢复文件恢复到预设版本。
在本实施方式中,我们将需要系统操作(如修改操作、写入操作等)过程中生成的文件进行加密操作生成哈希值并进行存储,这样,在后续的操作中,若出现文件错误,则可以通过回滚机制,回到指定位置,将待恢复文件恢复到预设版本,作为后续的调试和修改。
具体,在这个过程中,首先将Linux系统中生成的文件生成快照,通过加密算法对其进行加密得到相应的哈希值,并随着文件存储在硬盘内。当需要恢复文件时,根据待恢复文件的哈希值通过预先创建的虚拟指针指向其存储区域,查找到相应待恢复文件,进而将其恢复到预设版本。特别的,在本实施方式中,我们对上述加密算法不做具体限定,只要能够满足本实施方式的目的,将生成的文件进行哈希加密生成相应的哈希值,都包括在本实施方式的内容中,如在一个具体实例中,使用MD5算法对文件进行加密。
更具体来说,在本实施方式中,Linux系统操作过程中生成的文件中除了包括Linux系统中执行各操作指令(make dir指令、touch指令、tar指令、yum指令、rpm指令等)生成的操作文件,还包括与操作文件相互依赖的依赖文件。我们知道,在Linux系统中,依赖文件为在创建等操作过程中生成的操作文件的相关文件,且以隐性格式存在,存储地址与操作文件不关联,若在系统操作过程中隐藏文件出现问题,技术人员将没有办法找到相关的依赖文件(目前没有相关查找机制),以此将对技术人员造成困扰。
在本实施方式提供的文件恢复方法对依赖文件同样适用,只需同样将操作过程中生成的依赖文件加密得到相应的哈希值,并进行存储。之后,若需要查找,通过虚拟指针的方式得到待恢复文件即可,以此提高了系统维护的效率,保障了系统操作过程中各类文件在存储过程中的安全性能。
对上述实施方式进行改进得到本实施方式,如图2所示,在本实施方式中,该文件恢复方法中包括:S11通过版本控制对Linux系统操作过程中生成的文件进行加密得到对应的哈希值并生成该文件对应的版本号;S12将生成的哈希值和版本号分别与该文件关联存储在指定空间区域;S2通过虚拟指针指向待恢复文件的哈希值,从而将待恢复文件恢复到预设版本。
在本实施方式中,将加密文件(包括操作文件和依赖文件)得到的哈希值与文件进行关联存储,这样,当需要恢复文件时,根据该待恢复文件的哈希值查找到其存储区域,进而实现查找的目的。除此之外,同时将版本控制生成的版本号对该文件进行关联存储,这样,当虚拟指针指向了相应的哈希值,能够迅速的查找到对应的待恢复文件。
对上述实施方式进行改进得到本实施方式,如图3所示,在本实施方式中,该文件恢复方法中包括:S11通过版本控制对Linux系统操作过程中生成的文件进行加密得到对应的哈希值并生成该文件对应的版本号;S12将生成的哈希值和版本号分别与该文件关联存储在指定空间区域;S21得到待恢复文件的哈希值;S22虚拟指针根据哈希值循环寻址到该待恢复文件存储的空间地址;S23虚拟指针在具有相同哈希值的文件中查找到待恢复文件,进而将其恢复到预设版本。
我们知道,在同一时刻,对同一个行为命令的文件进行加密生成的哈希值是相同的,即同一哈希值可能对应多个文件(包括操作文件和/或依赖文件),如在同一时刻同时进行了显示操作、提交操作、恢复操作等,以此,在恢复文件的过程中,虚拟指针根据待恢复文件的哈希值查找到期存储的空间地址之后,进一步根据版本号循环查找到指定的待恢复文件,回到指定位置,将待恢复文件恢复到预设版本。
在一个实例中,以写入操作为例,文件的存储过程具体为:首先,在根目录下创建一个text文件(如图4所示)并写入数据(如图5所示);之后,保存该text文件,执行wq!命令(保存修改并退出),与此同时,通过版本控制使用MD5加密算法对保存的text文件进行加密生成对应的哈希值并将其与文件/版本号关联,随着文件一起存储在磁盘区镜像区中(如图6所示),并将关联关系存储在磁盘的空间地址1(在磁盘的存储区域中,每个空间地址对应存储一个哈希值)中。另外,同样使用MD5加密算法对这个过程中生成的第一依赖文件进行加密生成对应的哈希值,与第一依赖文件关联存储在硬盘中,并将关联关系存储在磁盘的空间地址2中。
在文件出错时,技术人员即时耗费了大量的时间也找不出问题所在,只能通过还原到文件生成之前的方式来解决,如图7所示;此时去创建文件的目录下查看已经没有了该文件,如图8所示,以此,通过本发明提供的方法对其进行恢复。具体,在使用recover指令恢复文件的过程中,首先得到该待恢复文件的哈希值,之后虚拟指针根据该哈希值寻址到关联关系存储的空间地址1,接着虚拟指针进一步在具有相同哈希值的文件中进行循环查找,找到待恢复文件,从而恢复该文件被发生操作之前的状态。
若对该进行了修改操作,修改结束并保存之后,同样通过版本控制使用MD5加密算法对保存的修改文件进行加密生成对应的哈希值并将其与修改文件/版本号关联,随着文件一起存储在磁盘区镜像区中,并将关联关系存储在磁盘的空间地址3。对于修改过程中生成的第二依赖文件,同样使用MD5加密算法对其进行加密生成对应的哈希值,与第二依赖文件关联存储在硬盘中,并将关联关系存储在磁盘的空间地址4中。在使用recover指令恢复文件的过程中,首先得到该待恢复文件的哈希值,之后虚拟指针根据该哈希值寻址到关联关系存储的空间地址3,接着虚拟指针进一步在具有相同哈希值的文件中进行循环查找,找到待恢复文件,从而恢复该文件被发生操作之前的状态。
如图9所示为本发明提供的Linux系统中文件恢复装置100一种实施方式示意图,从图中可以看出,在该文件恢复装置100中包括:加密模块110、存储模块120以及查找模块130,其中,存储模块120分别与加密模块110和查找模块130连接。
在工作过程中,首先将Linux系统中生成的文件生成快照,通过加密模块110对其进行加密得到相应的哈希值,并随着文件存储在存储模块120内。当需要恢复文件时,查找模块130根据待恢复文件的哈希值通过预先创建的虚拟指针指向其存储区域,查找到相应待恢复文件,进而将其恢复到预设版本。特别的,在本实施方式中,我们对上述加密算法不做具体限定,只要能够满足本实施方式的目的,将生成的文件进行哈希加密生成相应的哈希值,都包括在本实施方式的内容中,如在一个具体实例中,使用MD5算法对文件进行加密。
更具体来说,在本实施方式中,Linux系统操作过程中生成的文件中除了包括Linux系统中执行各操作指令(make dir指令、touch指令、tar指令、yum指令、rpm指令等)生成的操作文件,还包括与操作文件相互依赖的依赖文件。我们知道,在Linux系统中,依赖文件为在创建等操作过程中生成的操作文件的相关文件,且以隐性格式存在,存储地址与操作文件不关联,若在系统操作过程中隐藏文件出现问题,技术人员将没有办法找到相关的依赖文件(目前没有相关查找机制),以此将对技术人员造成困扰。
在本实施方式提供的文件恢复方法对依赖文件同样适用,只需同样将操作过程中生成的依赖文件加密得到相应的哈希值,并进行存储。之后,若需要查找,通过虚拟指针的方式得到待恢复文件即可,以此提高了系统维护的效率,保障了系统操作过程中各类文件在存储过程中的安全性能。
对上述实施方式进行改进得到本实施方式,如图10所示,文件恢复装置100中除了包括加密模块110、存储模块120以及查找模块130之外,还包括:版本控制模块140和关联模块150,版本控制模块140分别与加密模块110和关联模块150连接,关联模块150与存储模块120连接。
在工作过程中,在版本控制模块140的控制下使用加密模块110对Linux系统操作过程中的文件进行加密得到对应的哈希值同时生成对应的版本号;之后,关联模块150将加密模块110生成的哈希值和版本控制模块140生成的版本号分别与该文件进行关联并存储在存储模块120。若要恢复某一文件(待恢复文件),则通过查找模块130中的虚拟指针根据待恢复文件的哈希值循环寻址到其存储的空间地址,之后进一步在具有相同哈希值的文件中查找到待恢复文件,从而将其恢复到预设版本。
我们知道,在同一时刻,对同一个行为命令的文件进行加密生成的哈希值是相同的,即同一哈希值可能对应多个文件(包括操作文件和/或依赖文件),如在同一时刻同时进行了显示操作、提交操作、恢复操作等,以此,在恢复文件的过程中,虚拟指针根据待恢复文件的哈希值查找到期存储的空间地址之后,进一步根据版本号循环查找到指定的待恢复文件,回到指定位置,将待恢复文件恢复到预设版本。
在一个实例中,若对某一文件进行了删除操作,通过版本控制使用MD5加密算法对这一操作生成的操作文件进行加密生成对应的哈希值并将其与操作文件/版本号关联,随着操作文件一起存储在磁盘区镜像区中,并将关联关系存储在磁盘的空间地址5。对于修改过程中生成的第三依赖文件,同样使用MD5加密算法对其进行加密生成对应的哈希值,与第三依赖文件关联存储在硬盘中,并将关联关系存储在磁盘的空间地址6中。
当需要查找到被删除的文件时,首先得到该操作文件的哈希值,之后虚拟指针根据该哈希值寻址到关联关系存储的空间地址6,对该删除操作进行逆操作即可恢复得到被删除的文件。
应当说明的是,上述实施例均可根据需要自由组合。以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。