CN115904813A - 文件备份方法、装置、设备及存储介质 - Google Patents
文件备份方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN115904813A CN115904813A CN202211690409.1A CN202211690409A CN115904813A CN 115904813 A CN115904813 A CN 115904813A CN 202211690409 A CN202211690409 A CN 202211690409A CN 115904813 A CN115904813 A CN 115904813A
- Authority
- CN
- China
- Prior art keywords
- file
- transmission
- backed
- files
- directory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Abstract
本发明属于数据备份与灾难恢复技术领域,公开了一种文件备份方法、装置、设备及存储介质。该方法包括:遍历待备份文件目录,生成传输列表集;根据传输列表集并行传输对应的待备份文件以对所述待备份文件进行备份。通过上述方式,将文件扫描和文件传输两个操作并行,文件扫描采用基于深度遍历的算法,并通过链表结构规避了函数递归调用,快速生成与数据传输进程数量匹配的多份传输列表。文件传输进程即时读取各自的传输列表进行文件的并行传输。高效利用现有资源,可较大幅缩短海量小文件的备份窗口,支持多种操作系统,具有广阔的应用前景。
Description
技术领域
本发明涉及数据备份与灾难恢复技术领域,尤其涉及一种文件备份方法、装置、设备及存储介质。
背景技术
在容灾系统中,备份窗口的长短是容灾系统的关键点之一。备份过程一般分为文件扫描和文件传输两个部分。当前通用的扫描方式有两种:深度遍历、广度遍历。深度遍历通常通过递归来实现,当面临目录层级较深时,就会占用大量内存,影响系统性能。广度遍历通常通过缓存队列来实现,当面临某一目录下有海量目录时,也会占用大量内存,影响系统性能。在文件传输部分,目前比较成熟的传输方式为单通道式文件传输,但单通道的传输方式,无法充分利用本地服务器资源和网络带宽,从而增加了备份传输时间。中国专利公开号为CN103997514A的申请案可实现文件并行传输,但由于在备份海量小文件时,文件扫描过程漫长,在遍历文件以及切割文件过程没有数据传输,闲置了文件扫描期间的网络传输相关设备及资源,也延长了备份窗口。
上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。
发明内容
本发明的主要目的在于提供一种文件备份方法、装置、设备及存储介质,旨在解决现有技术在备份海量小文件时文件扫描以及传输过程效率低的技术问题。
为实现上述目的,本发明提供了一种文件备份方法,所述方法包括以下步骤:
遍历待备份文件目录,生成传输列表集;
根据传输列表集并行传输对应的待备份文件以对所述待备份文件进行备份。
可选地,所述遍历待备份文件目录,生成传输列表集,包括:
基于链表的深度遍历方式遍历待备份文件目录,得到待备份文件的文件记录;
根据所述文件记录生成传输列表;
根据所述传输列表生成传输列表集。
可选地,所述根据传输列表集并行传输对应的待备份文件,包括:
获取所述传输列表集中的目标传输列表;
并行传输所述目标传输列表中文件记录对应的待备份文件。
此外,为实现上述目的,本发明还提出一种文件备份装置,所述文件传输装置包括:
遍历模块,用于遍历待备份文件目录,生成传输列表集;
传输模块,用于根据传输列表集并行传输对应的待备份文件以对待备份文件进行备份。
此外,为实现上述目的,本发明还提出一种文件备份设备,所述文件备份设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的文件备份程序,所述文件备份程序配置为实现如上文所述的文件备份方法的步骤。
此外,为实现上述目的,本发明还提出一种存储介质,所述存储介质上存储有文件备份程序,所述文件备份程序被处理器执行时实现如上文所述的文件备份方法的步骤。
本发明通过遍历待备份文件目录,生成传输列表集;根据传输列表集并行传输对应的待备份文件以对所述待备份文件进行备份。通过上述方式,将文件扫描和文件传输两个操作并行,文件扫描采用基于深度遍历的算法,并通过链表结构规避了函数递归调用,快速生成与数据传输进程数量匹配的多份传输列表。文件传输进程即时读取各自的传输列表进行文件的并行传输。高效利用现有资源,可较大幅缩短海量小文件的备份窗口,支持多种操作系统,具有广阔的应用前景。
附图说明
图1是本发明实施例方案涉及的硬件运行环境的文件备份设备的结构示意图;
图2为本发明文件备份方法第一实施例的流程示意图;
图3为本发明文件备份方法一实施例的遍历原理图;
图4为本发明文件备份方法一实施例的遍历流程图;
图5为本发明文件备份方法一实施例的基于链表的深度遍历原理图;
图6为本发明文件备份方法一实施例的基于链表的深度遍历流程图;
图7为本发明文件备份方法一实施例的传输原理图;
图8为本发明文件备份方法一实施例的单传输进程流程图;
图9为本发明文件备份方法一实施例的整体原理图;
图10为本发明文件备份装置第一实施例的结构框图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
参照图1,图1为本发明实施例方案涉及的硬件运行环境的文件备份设备结构示意图。
如图1所示,该文件备份设备可以包括:处理器1001,例如中央处理器(CentralProcessing Unit,CPU),通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如无线保真(Wireless-Fidelity,Wi-Fi)接口)。存储器1005可以是高速的随机存取存储器(RandomAccess Memory,RAM)存储器,也可以是稳定的非易失性存储器(Non-Volatile Memory,NVM),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的结构并不构成对文件备份设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及文件备份程序。
在图1所示的文件备份设备中,网络接口1004主要用于与网络服务器进行数据通信;用户接口1003主要用于与用户进行数据交互;本发明文件备份设备中的处理器1001、存储器1005可以设置在文件备份设备中,所述文件备份设备通过处理器1001调用存储器1005中存储的文件备份程序,并执行本发明实施例提供的文件备份方法。
本发明实施例提供了一种文件备份方法,参照图2,图2为本发明一种文件备份方法第一实施例的流程示意图。
本实施例中,所述文件备份方法包括以下步骤:
步骤S10:遍历待备份文件目录,生成传输列表集。
需要说明的是,本实施例的执行主体为文件备份设备,文件备份设备可以为移动终端、电脑、服务器等存储有文件的设备。
进一步地,所述遍历待备份文件目录,生成传输列表集,包括:
基于链表的深度遍历方式遍历待备份文件目录,得到待备份文件的文件记录;根据所述文件记录生成传输列表;根据所述传输列表生成传输列表集。
可以理解的是,传输列表集L,是多个传输列表Ln-m的集合。传输列表Ln-m,用来登记需要传输的文件记录R,可容纳的最大数量为x。其中,n表示传输模块中传输进程的编号,传输进程数表示可根据需要灵活配置大小,m表示由某个传输进程执行的传输列表的自增序号。
每个记录R包含以下三个部分:
文件名:字符串,需备份的文件的名称。
文件路径:字符串,需备份的文件所在的路径。
文件大小:字符串,需备份的文件的大小。
在具体实现中,如图3所示,本实施例基于链表的深度遍历方法遍历需要备份的文件目录,扫描出文件F的文件名、文件路径、文件大小并封装成记录R,根据传输模块传输进程数n,依次写入到传输列表L1-1、L2-1…Ln-1中,当L1-1、L2-1…Ln-1存储的文件记录R达到最大数量后会生成新的传输列表L1-2…L2-2……Ln-2,依次类推,生成并写入传输列表L1-m…L2-m……Ln-m。
如图4所示,将遍历过程中输出的文件或目录信息(文件名、文件路径、文件大小)封装成记录R写入传输列表Ln-m中,以此循环类推,直至遍历过程结束。具体步骤如下:
①获取传输进程的数量n;
②生成n个传输列表:L1-1、L2-1…Ln-1;
③判断遍历过程是否完毕?如果是,转到⑨;
④判断当前传输列表Ln-m是否写满?如果否,转到⑥;
⑤传输列表名的下标m增加1,生成n个新的传输列表:L1-m、L2-m…Ln-m;
⑥按顺序从n个传输列表中选出一个用于写入记录R;
⑦接收基于链表的深度遍历(图5流程图)输出的文件或目录信息;
⑧把文件或目录信息组成记录R写入传输列表Ln-m,转到③;
⑨创建完成标志;
⑩结束。
如图5所示,文件目录的深度遍历是基于扫描迭代链表C进行遍历的,扫描迭代链表C的第n个节点用来记录第n层目录节点(目录或文件)的迭代信息。链表节点含两个元素:Count和Index,其中元素Count表示该目录节点的兄弟节点的个数(含自己),元素Index表示自己在兄弟节点中的按序排列后所处的位置的序号。例如:
图中右方链表所表示的目录路径为“/root/B/H”。
第三个链表节点表示该路径第三层目录节点“H”的迭代信息,count=3表示目录节点H包括自己一共有3个节点,即“F、G、H”,index=3表示3个目录节点按序排列后H的序号为3。
第二个链表节点表示该路径第二层目录节点“B”的迭代信息,count=3表示目录节点B包括自己一共有3个节点,即“A、B、C”,index=2表示其索引位置为2。
第一个链表节点表示该路径第一层目录节点“root”的迭代信息,该层仅自己1个节点“root”,索引位置为1。
基于该链表结构的遍历过程如下:
在开始遍历前,链表为空。在遍历到根节点“root”时,在链表中添加第一个节点[1,1],对应路径为“/root”。由于该目录节点类型为目录,于是读取其第一个目录项A的信息,在链表中添加第二个节点,添加后形如:[1,1]-[3,1],对应路径为“/root/A”。该目录节点仍为目录,于是读取其第一个目录项D的信息,在链表中添加第三个节点,添加后形如:[1,1]-[3,1]-[2,1],对应路径为“/root/A/D”。目录节点D是个文件(或空目录),于是扫描该层的第二个目录节点E,链表更新后形如:[1,1]-[3,1]-[2,2],对应路径为“/root/A/E”。目录节点E没有其他兄弟节点,也没有目录项,故返回到上层,读取下一个目录节点B,链表更新后形如:[1,1]-[3,2],对应路径为“/root/B”。按此规律,即可将整个目录树遍历完毕,且遍历过程中断后可从断点恢复后继续遍历。当经过若干次遍历后,链表再次表示目录节点“root”,形如:[1,1]时,即表示整个目录扫描迭代过程完毕。
如图6所示,基于链表的深度遍历步骤如下:
①读取并输出文件或目录节点信息到生成传输列表集L流程中;
②判定当前目录节点情况:
如果是非空目录,跳转到③;
如果不是兄弟目录节点中最后一个文件或空目录,跳转到⑥;
如果是兄弟目录节点中最后一个文件或空目录,跳转到⑦;
③进入该目录;
④在链表末尾添加节点;
⑤更新当前链表末尾节点的count、index,跳转到⑩;
⑥更新链表末尾节点的index,跳转到⑩;
⑦返回上一级目录;
⑧删除链表末尾节点;
⑨更新当前链表末尾节点的index,跳转到⑩;
步骤S20:根据传输列表集并行传输对应的待备份文件以对所述待备份文件进行备份。
进一步地,所述根据传输列表集并行传输对应的待备份文件,包括:获取所述传输列表集中的目标传输列表;并行传输所述目标传输列表中文件记录对应的待备份文件。
需要说明的是,目标传输列表是指已经被写满文件记录的传输列表。如图7所示,在进行传输时,传输进程Tn待至少一个传输列表写满后,从Ln-1开始读取记录R,并传输对应的待备份文件。Ln-1中登记的文件传输完毕后,对传输列表Ln-2执行相同的操作,依次类推,对传输列表Ln-3…Ln-m执行相同的操作,直至所有待备份文件扫描并传输完毕。
如图8所示,传输过程中会创建多个传输进程,使用各自的m个传输列表进行传输,互不干扰。只要有一个已写满的传输列表,就立即进行传输文件的操作。单个传输进程,步骤如下:
①加载第一个已写满的传输列表Ln-1;
②判断传输列表中的记录R已全部读完,如果是,转到⑤;
③从传输列表Ln-m读取一条记录R;
④将记录R对应的文件传输到服务端,转到②;
⑤传输列表名下标m加1,尝试加载下一个已写满的传输列表Ln-m;
⑥判断传输列表是否存在,如果是,转到②;
⑦判断扫描结束标志是否存在,如果否,sleep后,转到⑥;
⑧结束。
如图9所示,本实施例在实现上分为本地和远程两个部分,本地部分包括文件扫描模块SCAN、传输模块TRANS以及传输列表集L;远程部分只包括数据接收模块DRM。
文件扫描模块SCAN进行文件目录的遍历和传输列表集L的生成;传输模块TRANS由可配置数量的n个传输进程组成,每个传输进程之间是独立存在的,分别从传输列表集L中按照顺序取出对应的传输列表进行文件传输;数据接收模块DRM根据传输协议进行数据接收。
本实施例通过遍历待备份文件目录,生成传输列表集;根据传输列表集并行传输对应的待备份文件以对所述待备份文件进行备份。通过上述方式,将文件扫描和文件传输两个操作并行,文件扫描采用基于深度遍历的算法,并通过链表结构规避了函数递归调用,快速生成与数据传输进程数量匹配的多份传输列表。文件传输进程即时读取各自的传输列表进行文件的并行传输。高效利用现有资源,可较大幅缩短海量小文件的备份窗口,支持多种操作系统,具有广阔的应用前景。
此外,本发明实施例还提出一种存储介质,所述存储介质上存储有文件备份程序,所述文件备份程序被处理器执行时实现如上文所述的文件备份方法的步骤。
由于本存储介质采用了上述所有实施例的全部技术方案,因此至少具有上述实施例的技术方案所带来的所有有益效果,在此不再一一赘述。
参照图10,图10为本发明文件备份装置第一实施例的结构框图。
如图10所示,本发明实施例提出的文件备份装置包括:
遍历模块10,用于遍历待备份文件目录,生成传输列表集;
传输模块20,用于根据传输列表集并行传输对应的待备份文件以对待备份文件进行备份。
在一实施例中,所述遍历模块10,还用于基于链表的深度遍历方式遍历待备份文件目录,得到待备份文件的文件记录;
根据所述文件记录生成传输列表;
根据所述传输列表生成传输列表集。
在一实施例中,所述传输模块20,还用于获取所述传输列表集中的目标传输列表;
并行传输所述目标传输列表中文件记录对应的待备份文件。
应当理解的是,以上仅为举例说明,对本发明的技术方案并不构成任何限定,在具体应用中,本领域的技术人员可以根据需要进行设置,本发明对此不做限制。
本实施例通过遍历待备份文件目录,生成传输列表集;根据传输列表集并行传输对应的待备份文件以对所述待备份文件进行备份。通过上述方式,将文件扫描和文件传输两个操作并行,文件扫描采用基于深度遍历的算法,并通过链表结构规避了函数递归调用,快速生成与数据传输进程数量匹配的多份传输列表。文件传输进程即时读取各自的传输列表进行文件的并行传输。高效利用现有资源,可较大幅缩短海量小文件的备份窗口,支持多种操作系统,具有广阔的应用前景。
需要说明的是,以上所描述的工作流程仅仅是示意性的,并不对本发明的保护范围构成限定,在实际应用中,本领域的技术人员可以根据实际的需要选择其中的部分或者全部来实现本实施例方案的目的,此处不做限制。
另外,未在本实施例中详尽描述的技术细节,可参见本发明任意实施例所提供的文件备份方法,此处不再赘述。
此外,需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如只读存储器(Read Only Memory,ROM)/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (6)
1.一种文件备份方法,其特征在于,所述文件方法包括:
遍历待备份文件目录,生成传输列表集;
根据传输列表集并行传输对应的待备份文件以对所述待备份文件进行备份。
2.如权利要求1所述的方法,其特征在于,所述遍历待备份文件目录,生成传输列表集,包括:
基于链表的深度遍历方式遍历待备份文件目录,得到待备份文件的文件记录;
根据所述文件记录生成传输列表;
根据所述传输列表生成传输列表集。
3.如权利要求1所述的方法,其特征在于,所述根据传输列表集并行传输对应的待备份文件,包括:
获取所述传输列表集中的目标传输列表;
并行传输所述目标传输列表中文件记录对应的待备份文件。
4.一种文件备份装置,其特征在于,所述文件备份装置包括:
遍历模块,用于遍历待备份文件目录,生成传输列表集;
传输模块,用于根据传输列表集并行传输对应的待备份文件以对待备份文件进行备份。
5.一种文件备份设备,其特征在于,所述设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的文件备份程序,所述文件备份程序配置为实现如权利要求1至3中任一项所述的文件备份方法。
6.一种存储介质,其特征在于,所述存储介质上存储有文件备份程序,所述文件备份程序被处理器执行时实现如权利要求1至3任一项所述的文件备份方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211690409.1A CN115904813A (zh) | 2022-12-26 | 2022-12-26 | 文件备份方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211690409.1A CN115904813A (zh) | 2022-12-26 | 2022-12-26 | 文件备份方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115904813A true CN115904813A (zh) | 2023-04-04 |
Family
ID=86479809
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211690409.1A Pending CN115904813A (zh) | 2022-12-26 | 2022-12-26 | 文件备份方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115904813A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117349401A (zh) * | 2023-12-06 | 2024-01-05 | 之江实验室 | 一种非结构化数据的元数据存储方法、装置、介质及设备 |
-
2022
- 2022-12-26 CN CN202211690409.1A patent/CN115904813A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117349401A (zh) * | 2023-12-06 | 2024-01-05 | 之江实验室 | 一种非结构化数据的元数据存储方法、装置、介质及设备 |
CN117349401B (zh) * | 2023-12-06 | 2024-03-15 | 之江实验室 | 一种非结构化数据的元数据存储方法、装置、介质及设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
RU2338245C2 (ru) | Способ и считываемый компьютером носитель для импорта и экспорта иерархически структурированных данных | |
CA2722320C (en) | Paging hierarchical data | |
US9020983B2 (en) | Address list system and method of implementing an address list | |
CN115904813A (zh) | 文件备份方法、装置、设备及存储介质 | |
CN111026765A (zh) | 严格平衡二叉树的动态处理方法、设备、存储介质及装置 | |
JP4971717B2 (ja) | ディレクトリ分散型記憶装置及びデータ処理要求移譲プログラム | |
CN103503388B (zh) | 一种分布式队列消息读取方法及设备、系统 | |
JP2001527240A (ja) | データ構造内の管理 | |
Aoe | An efficient implementation of static string pattern matching machines | |
CN115576899B (zh) | 构建索引的方法和装置以及文件查找方法和装置 | |
CN116346777A (zh) | 一种字典树域名匹配方法、装置、设备及存储介质 | |
CN113704819B (zh) | 一种应用日志的打码输出方法、装置及计算机可读存储介质 | |
CN113132241B (zh) | Acl模板动态配置方法及装置 | |
JP2675958B2 (ja) | 情報検索用計算機システム及びその記憶装置の動作方法 | |
CN113127861A (zh) | 一种规则命中检测方法、装置、电子设备及可读存储介质 | |
CN110807092A (zh) | 数据处理方法及装置 | |
CN111694559B (zh) | Gc程序语言中哈希表的实现方法及装置 | |
CN111262589A (zh) | 一种dfa空间压缩方法及装置 | |
CN109977104A (zh) | 数据管理方法及装置 | |
CN115185503B (zh) | 前端低代码开发方法、装置、电子设备、介质 | |
CN113312549B (zh) | 一种域名处理方法和装置 | |
CN113254262B (zh) | 一种数据库容灾方法、装置和电子设备 | |
Battiti | Partially persistent dynamic sets for history-sensitive heuristics. | |
JP2008217596A (ja) | 文書検索システム及びプログラム | |
CN116841538A (zh) | 控件的处理方法、装置、处理设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |