一种基于变化文件监控的快速文件备份方法

文档序号:6546206阅读:235来源:国知局
一种基于变化文件监控的快速文件备份方法
【专利摘要】本发明提供一种基于变化文件监控的快速文件备份方法,其具体实现过程为:设置文件监控模块,文件列表生成模块,文件路径排序模块及文件备份模块;文件备份模块调用文件列表生成模块进行备份文件列表的生成;文件列表生成模块读取文件监控模块监控到的变化文件路径,并将这些路径传输给文件路径排序模块;文件路径排序模块对传递给它的路径进行排序,并将排序结果返馈给文件列表生成模块;文件备份模块将上一次的备份文件列表与本次的进行合并,生成最终的备份文件列表,并根据此列表进行文件备份。该一种基于变化文件监控的快速文件备份方法和现有技术相比,简化了备份内容索引与备份内容定位,从而降低成本,实用性强,易于推广。
【专利说明】一种基于变化文件监控的快速文件备份方法
【技术领域】
[0001]本发明涉及计算机灾备【技术领域】,具体的说是一种基于变化文件监控的快速文件备份方法。
【背景技术】
[0002]随着IT信息系统建设进程中的数据大集中时代的到来,数据灾备成为了数据中心建设中必须要考虑的重要一环。所谓的数据灾备即是采用某种措施或技术提供一定的数据冗余,当原始数据不可用时,可以使用冗余的数据进行顶替或是恢复。可见,数据灾备中的根本性技术即是数据备份。按照备份数据的粒度不同,可以分为两种,一种为块级别的数据备份,常见的如RAID技术,远程复制技术等;另一种为文件级别的数据备份,其多被数据备份软件所使用。块级别的数据备份由于位于文件系统层之下,具备性能高,恢复速度快的特点;但也正是由于其在文件系统之下,其同样存在着备份粒度较大,无法和多种文件系统进行兼容的缺点。文件级别的数据备份使用文件系统的API进行备份,其速度不如块级别备份,但其粒度可以精确到单个文件,并且由于使用操作系统提供的API,对多种文件系统均具备通用性。在使用上,块级别的数据备份多为存储系统提供的附加功能,用于对整个磁盘进行备份;文件级别的数据备份多为数据备份软件提供的功能,用于对文件夹或文件进行备份。本专利集中于文件级别的数据备份。
[0003]文件级别的数据备份大体有3种备份策略,全量备份,差异备份及增量备份。在用户的使用场景中,多见全量备份与增量备份的组合,提升增量备份的效率,可明显缩短备份窗口,提升整体的备份速度。
[0004]增量备份的关键点在于确定本次增量需要备份哪些文件,即确定变化的文件。其可采用传统的扫描方式,但其扫描时间会比较长;也可使用归档位的方式,但需要具体的文件系统给予支持。基于此,现提供一种采用变化文件监控的方式进行变化文件的确定,不需要文件系统给予支持,提高了通用性的快速文件备份方法。

【发明内容】

[0005]本发明的技术任务是解决现有技术的不足,提供一种采用主动监控的方式来确定变化的文件,增量备份直接使用记录的变化文件列表进行文件备份、有效地缩短了备份窗口、提升了备份效率、基于变化文件监控的快速文件备份方法。
[0006]本发明的技术方案是按以下方式实现的,该一种基于变化文件监控的快速文件备份方法,其具体实现过程为:
一、设置以下四个模块:文件监控模块,文件列表生成模块,文件路径排序模块及文件备份模块,其中
文件监控模块,负责监控指定目录的文件变化;
文件列表生成模块,为文件备份模块生成需要备份的文件列表;
文件路径排序模块,对文件列表生成模块生成的文件列表进行排序,以使得备份的文件顺序与用户进行文件目录浏览的顺序相同,以便于进行备份文件的查找;
文件备份模块,其作用是对文件进行实质性的备份;
二、文件备份模块调用文件列表生成模块进行备份文件列表的生成;
三、文件列表生成模块读取文件监控模块监控到的变化文件路径,并将这些路径传输给文件路径排序模块;
四、文件路径排序模块对传递给它的路径进行排序,并将排序结果返馈给文件列表生成模块;
五、最后,文件备份模块将上一次的备份文件列表与本次的进行合并,生成最终的备份文件列表,并根据此列表进行文件备份。
[0007]所述文件监控模块包括WINDOWS系统文件监控、LINUX系统文件监控及UNIX系统文件监控。
[0008]所述文件备份模块在单次备份中,只备份文件列表中指定的各个文件
所述文件备份过程还包括步骤六,即上一次的备份文件列表与本次的备份文件列表进行合并的步骤:依次读取上一次的备份文件列表中与本次的备份文件列表中各一个路径,并进行比较,取较小的生成最终的备份文件列表,如果两个路径相同,则取本次的备份文件列表中的生成最终的务份文件列表。
[0009]所述步骤六的详细过程为:
1)读取上一次的备份文件列表中的结点A,如果读取错误,则将本次的备份文件列表内容写入备份文件列表;
2)读取本次的备份文件列表中的结点B,如果读取错误,则将上一次的备份文件列表内容写入到备份文件列表;
3)比较路径A和路径B,如果A=B,则将A写入备份文件列表中,并重复进入步骤I);如果A < B,则将A写入备份列表中,并读取上一次的备份文件列表中的结点A,如果读取错误,则将本次的备份文件列表内容写入到备份文件列表中,如果读取正确,则重复进入比较路径A和路径B ;如果A > B,则将B写入备份列表中,并读取本次的备份文件列表中的结点B,如果读取错误,则将上一次的备份文件列表内容写入到备份文件列表,如果读取正确,则重复进入比较路径A和路径B。
[0010]本发明与现有技术相比所产生的有益效果是:
本发明的一种基于变化文件监控的快速文件备份方法采用主动监控的方式来确定变化的文件,在进行增量备份时,直接备份文件监控所截获到的文件路径,而省却了对文件系统扫描以确定需要备份的文件这一过程,从而缩短备份窗口,提高增量备份的效率,设计了适合于目录浏览的文件路径排序算法,使用此算法对备份文件列表进行排序,保证了备份文件列表中的文件路径顺序即是按目录逐级浏览时的顺序,简化了备份内容索引与备份内容定位,从而降低成本,实用性强,易于推广。
【专利附图】

【附图说明】
[0011]附图1为快速文件备份方法的结构图。
[0012]附图2为进行增量备份时文件列表合并的时序图。【具体实施方式】
[0013]下面结合附图对本发明的一种基于变化文件监控的快速文件备份方法作以下详细说明。
[0014]如附图1、图2所示,现提供一种基于变化文件监控的快速文件备份方法,其具体实现过程为:
一、设置以下四个模块:文件监控模块,文件列表生成模块,文件路径排序模块及文件备份模块,其中
文件监控模块,负责监控指定目录的文件变化;
文件列表生成模块,为文件备份模块生成需要备份的文件列表;
文件路径排序模块,对文件列表生成模块生成的文件列表进行排序,以使得备份的文件顺序与用户进行文件目录浏览的顺序相同,以便于进行备份文件的查找;
文件备份模块,其作用是对文件进行实质性的备份;
二、文件备份模块调用文件列表生成模块进行备份文件列表的生成;
三、文件列表生成模块读取文件监控模块监控到的变化文件路径,并将这些路径传输给文件路径排序模块;
四、文件路径排序模块对传递给它的路径进行排序,并将排序结果返馈给文件列表生成模块;
五、最后,文件备份模块将上一次的备份文件列表与本次的进行合并,生成最终的备份文件列表,并根据此列表进行文件备份。
[0015]所述文件监控模块包括WINDOWS系统文件监控、LINUX系统文件监控及UNIX系统文件监控。
[0016]所述文件备份模块在单次备份中,只备份文件列表中指定的各个文件。
[0017]所述文件备份过程还包括步骤六,即上一次的备份文件列表与本次的备份文件列表进行合并的步骤。之所以需要将上一次的备分列表与本次的备份文件列表进行合并,是因为备份文件列表中应包含用户备份目录的所有文件信息,而本次的备份文件列表中只有增量部份的信息,因此需要与上次的合成,以生成用户备份目录的所有文件信息。在图2中,Catalog部份为上一次的备份文件列表,IncFileList为本次的备份文件列表。,该步骤的内容为:依次读取上一次的备份文件列表中与本次的备份文件列表中各一个路径,并进行比较,取较小的生成最终的备份文件列表,如果两个路径相同,则取本次的备份文件列表中的生成最终的务份文件列表。
[0018]所述步骤六的详细过程为:
1)读取上一次的备份文件列表中的结点A,如果读取错误,则将本次的备份文件列表内容写入备份文件列表;
2)读取本次的备份文件列表中的结点B,如果读取错误,则将上一次的备份文件列表内容写入到备份文件列表;
3)比较路径A和路径B,如果A=B,则将A写入备份文件列表中,并重复进入步骤I);如果A < B,则将A写入备份列表中,并读取上一次的备份文件列表中的结点A,如果读取错误,则将本次的备份文件列表内容写入到备份文件列表中,如果读取正确,则重复进入比较路径A和路径B ;如果A > B,则将B写入备份列表中,并读取本次的备份文件列表中的结点B,如果读取错误,则将上一次的备份文件列表内容写入到备份文件列表,如果读取正确,则重复进入比较路径A和路径B。
[0019]在进行具体的文件列表排序时,采用如下表所述的算法进行排序。本算法保证了文件路径的排列顺序即为用户进行目录浏览时的顺序。
[0020]此算法保证按照目录树进行排序,同一父目录下的按照文件在前,文件夹在后的顺序进行排序,文件或文件夹同类比较时按照字符序排序。
[0021]@ret:-1 for Α<Β, O for A=Bj I for A>B./
int PathCmp (char 木A, char ^B) {
int i = 0;
bool isFolderNameA = false;
bool isFoIderNameB = false;
while (A[i]&&B[i]&&A[i] == B[i]) i++;
isFolderNameA = IsFolderName (A, i) ;// 判断当前位置是否是在一个 Folder 中,对 于’ 特殊情况算是在folder中,对于’ \0’不算在folder中 isFoIderNameB = IsFolderName(B,i); if (isFolderNameA == isFoIderNameB){ if (A[i] == V,)return -1; if(B[i] == ‘ )return I; return A[i] - B[i];
}
if (!isFolderNameA)return -1;
if(!isFoIderNameB)return I;
return 0;
}
上表中所描述的算法为比较两个路径的算法,对备份文件列表中的每个路径使用此算法进行比较,即完成了排序。
[0022]以上所述仅为本发明的实施例而已,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【权利要求】
1.一种基于变化文件监控的快速文件备份方法,其特征在于其具体实现过程为: 一、设置以下四个模块:文件监控模块,文件列表生成模块,文件路径排序模块及文件备份模块,其中 文件监控模块,负责监控指定目录的文件变化; 文件列表生成模块,为文件备份模块生成需要备份的文件列表; 文件路径排序模块,对文件列表生成模块生成的文件列表进行排序,以使得备份的文件顺序与用户进行文件目录浏览的顺序相同,以便于进行备份文件的查找; 文件备份模块,其作用是对文件进行实质性的备份; 二、文件备份模块调用文件列表生成模块进行备份文件列表的生成; 三、文件列表生成模块读取文件监控模块监控到的变化文件路径,并将这些路径传输给文件路径排序模块; 四、文件路径排序模块对传递给它的路径进行排序,并将排序结果返馈给文件列表生成模块; 五、最后,文件备份模块将上一次的备份文件列表与本次的进行合并,生成最终的备份文件列表,并根据此列表进行文件备份。
2.根据权利要求1所述的一种基于变化文件监控的快速文件备份方法,其特征在于:所述文件监控模块包括WINDOWS系统文件监控、LINUX系统文件监控及UNIX系统文件监控。
3.根据权利要求1所述的一种基于变化文件监控的快速文件备份方法,其特征在于:所述文件备份模块在单次备份中,只备份文件列表中指定的各个文件 根据权利要求1?3中任一所述的一种基于变化文件监控的快速文件备份方法,其特征在于:所述文件备份过程还包括步骤六,即上一次的备份文件列表与本次的备份文件列表进行合并的步骤:依次读取上一次的备份文件列表中与本次的备份文件列表中各一个路径,并进行比较,取较小的生成最终的备份文件列表,如果两个路径相同,则取本次的备份文件列表中的生成最终的务份文件列表。
4.根据权利要求4所述的一种基于变化文件监控的快速文件备份方法,其特征在于:所述步骤六的详细过程为: 1)读取上一次的备份文件列表中的结点A,如果读取错误,则将本次的备份文件列表内容写入备份文件列表; 2)读取本次的备份文件列表中的结点B,如果读取错误,则将上一次的备份文件列表内容写入到备份文件列表; 3)比较路径A和路径B,如果A=B,则将A写入备份文件列表中,并重复进入步骤I);如果A < B,则将A写入备份列表中,并读取上一次的备份文件列表中的结点A,如果读取错误,则将本次的备份文件列表内容写入到备份文件列表中,如果读取正确,则重复进入比较路径A和路径B ;如果A > B,则将B写入备份列表中,并读取本次的备份文件列表中的结点B,如果读取错误,则将上一次的备份文件列表内容写入到备份文件列表,如果读取正确,则重复进入比较路径A和路径B。
【文档编号】G06F17/30GK103995757SQ201410196549
【公开日】2014年8月20日 申请日期:2014年5月12日 优先权日:2014年5月12日
【发明者】王旭, 穆裕 申请人:浪潮电子信息产业股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1