一种跨平台文件属性的备份及恢复方法和装置与流程

文档序号:24984379发布日期:2021-05-07 23:01阅读:71来源:国知局
一种跨平台文件属性的备份及恢复方法和装置与流程

本发明涉及计算机数据备份容灾技术领域,特别是涉及一种不同操作系统间跨平台的文件属性的备份及恢复方法和装置。



背景技术:

在数据灾备领域,将工作端数据同步到备份端的同时,通常还需要考虑到文件属性的同步,这里文件的属性通常包括:文件的类别、文件的时间、访问权限、用户属主等基本属性,系统自带的高级属性,以及可以自己增加的高级属性,文件属性的不同步常常导致很多用户访问权限问题,或者文件时间不一致,以及其他属性相关的问题。一般的数据备份及恢复通常是在相同的操作系统平台之间进行的,不会出现文件属性不同导致的问题,但对于不同的操作系统平台,数据备份后再还原通常会导致文件属性丢失,无法跟原始文件的属性完全一致,从而可能导致用户访问权限等问题。



技术实现要素:

为克服上述现有技术存在的不足,本发明之目的在于提供一种跨平台的文件属性的备份及恢复方法和系统,以解决数据备份到不同平台的操作系统后再恢复时出现的文件属性不一致问题。

为达上述目的,本发明提出一种跨平台的文件属性的备份及恢复方法,包括:

步骤s1,执行备份文件任务,遍历工作机要发送的文件目录,读取文件以及文件的属性,依次发送至灾备机;

步骤s2,于灾备机端接收工作机端发送的文件及文件属性,将接收的文件写入灾备机备份目录,并将接收的文件属性写入文件同级目录下的属性文件;

步骤s3,执行恢复任务时,从灾备机同步每个文件时,从与该文件相关的属性文件中读取该文件的属性,记录到属性结构体中,与文件内容一起,发送到工作机端,待文件数据内容恢复后,将把属性内容写到文件中。

优选地,步骤s1进一步包括:

步骤s100,读取工作机要发送的文件目录下文件的属性结构,读取其中的基本属性发送至灾备机;

步骤s101,依次发送文件到灾备机;

步骤s102,每个文件发送结束后,读取该文件的高级属性attr_advance发送到灾备机。

优选地,所述文件的基本属性长度固定,高级属性不固定长度。

优选地,于步骤s2中,将接收的文件属性按照字符流的顺序写入写入文件同级目录下的属性文件。

优选地,步骤s2进一步包括:

步骤s200,当接收到文件的基本属性时,将基本属性值保存到灾备机的内存中;

步骤s201,将接收到的文件写入灾备机备份目录。

步骤s202,将每个文件的高级属性保存到灾备机的内存,并与之前保存的基本属性,一起写入文件同级目录下的属性文件中。

优选地,于步骤s202中,在写入每个文件的文件属性时,判断是否已存在相应的属性文件,若已存在对应的属性文件,则将要写入的文件属性与已存在的属性文件的内容进行比较,若属性内容不同,则将要写入的文件属性写入该属性文件,否则则不予写入。

优选地,于步骤s3中,恢复任务建立后,从与所要恢复的文件同级的目录下的属性文件中读取相应的文件属性,发送到工作机,工作机根据当前系统平台来判断属性的数据结构,将内存中的属性buff保存到属性数据结构中,再将该结构写入文件,对文件进行属性设置。

为达到上述目的,本发明还提供一种跨平台的文件属性的备份及恢复系统,包括:

工作机端,用于执行备份文件任务,遍历工作机要发送的文件目录,读取文件以及文件的属性,依次发送至灾备机备份目录,于在恢复任务过程中,接收灾备机发送所要恢复的每个文件及其对应的属性结构,在文件的数据内容恢复后,根据当前系统平台判断属性的数据结构,将内存中的属性buff保存到属性数据结构中,再将该数据结构写入文件,对文件进行属性设置;

灾备机端,接收所述工作机端发送所要备份的文件及文件属性,将接收的文件写入灾备机备份目录,并将接收的文件属性写入文件同级目录下的属性文件,按照字符流的顺序写入,包含文件基本属性和高级属性,执行恢复任务时,在同步每个文件时,从与该文件相关的属性文件中读取该文件的属性,记录到属性结构体中,与文件内容一起,发送到工作机端。

优选地,所述工作机端用于:

读取工作机要发送的文件目录下文件的属性结构,读取其中的基本属性发送至灾备机端;

依次发送文件到灾备机,并在每个文件发送结束后,读取该文件的高级属性attr_advance发送到灾备机;

在恢复任务过程中,当接收灾备机发送的每个文件及其对应的属性结构,先进行文件数据内容的恢复,在文件数据内容恢复后,根据当前系统平台判断属性的数据结构,将内存中的属性buff保存到属性数据结构中,再将该数据结构写入文件,对文件进行属性设置。

优选地,所述灾备机端用于:

当接收到文件的基本属性时,将基本属性值保存到灾备机的内存中;

将接收到的文件写入灾备机备份目录,并将每个文件的高级属性与之前保存的基本属性,一起写入文件同级目录下的属性文件中;

恢复任务建立后,从与所要恢复的文件同级的目录下的属性文件中读取相应的文件属性,与文件内容一起发送到所述工作机端。

与现有技术相比,本发明一种跨平台的文件属性的备份及恢复方法和系统通过执行备份文件任务时遍历工作机要发送的文件目录,读取文件以及文件的属性依次发送至灾备机,于灾备机端接收工作机端发送的文件及文件属性,将接收的文件写入灾备机备份目录,并将接收的文件属性写入文件同级目录下的属性文件,在执行恢复任务时,从灾备机同步每个文件时,从与该文件相关的属性文件中读取该文件的属性,记录到属性结构体中,与文件内容一起,发送到工作机端,待文件数据内容恢复后,将把属性内容写到文件中,解决了文件数据备份到不同平台的操作系统后再恢复时出现的文件属性不一致问题。

附图说明

图1为本发明一种跨平台的文件属性的备份及恢复方法的步骤流程图;

图2为本发明具体实施例中文件的属性结构示意图;

图3为本发明一种跨平台的文件属性的备份及恢复系统的系统架构图;

图4为本发明实施例中文件属性跨平台备份的流程图。

图5为本发明具体实施例文件属性跨平台恢复的流程图;

具体实施方式

以下通过特定的具体实例并结合附图说明本发明的实施方式,本领域技术人员可由本说明书所揭示的内容轻易地了解本发明的其它优点与功效。本发明亦可通过其它不同的具体实例加以施行或应用,本说明书中的各项细节亦可基于不同观点与应用,在不背离本发明的精神下进行各种修饰与变更。

图1为本发明一种跨平台的文件属性的备份及恢复方法的步骤流程图。如图1所示,本发明一种跨平台的文件属性的备份及恢复方法,包括:

步骤s1,执行备份文件任务,遍历工作机要发送的文件目录,读取文件以及文件的属性,依次发送至灾备机。

具体地,步骤s1进一步包括:

步骤s100,读取工作机要发送的文件目录下文件的属性结构,读取其中的基本属性发送至灾备机。

在本发明中,文件属性保存在内存buf中,包括基本属性和高级属性,其中基本属性长度是固定的,高级属性不固定长度,具体地,工作机数据目录下的文件的属性结构attrstruct如图2所示,包括基本属性attr_common和高级属性attr_advance,其中基本属性attr_common中包含文件的大小filesize、文件权限改变时间ctime、文件内容修改事件mtime、文件最后访问时间atime,用来判断是否需要传输数据,以及判断传输数据的大小,在本步骤中,读取文件属性结构attrstruct中的基本属性attr_common发送至灾备机,并保存基本属性attr_common的值到灾备机的内存中。

步骤s101,依次发送每个文件到灾备机。

步骤s102,每个文件发送结束后,读取该文件的高级属性attr_advance发送到灾备机,在本发明中,文件的高级属性attr_advance包括属性长度bufflen、组用户id(gid)、用户id(uid)、用户权限mod、访问权限dacl以及控制权限sacl。

也就是说,对于每个文件,会则依次将其基本属性、文件以及该文件的高级属性发送给灾备机。

步骤s2,于灾备机端接收工作机端发送的文件及文件属性,将接收的文件写入灾备机备份目录,并将接收的文件属性写入文件同级目录下的属性文件,按照字符流的顺序写入,其中文件属性包含文件基本属性和高级属性。

具体地说,步骤s2进一步包括:

步骤s200,当接收到文件的基本属性attr_common时,将基本属性attr_common的值保存到灾备机的内存中。

步骤s201,将接收到的文件写入灾备机备份目录。

步骤s202,将接收到的每个文件的高级属性attr_advance保存到灾备机的内存,并与之前保存的基本属性attr_common一起写入文件同级目录下的属性文件(即一个文件对应一个属性文件)中,在本发明具体实施例中,按照属性数据(包括高级属性和基本属性)在内存中的位置,把属性结构体转化成char字符串,写入属性文件.os.a.filename中,属性结构attr_struct由attr_common+attr_advance拼接起来组成,为常识技术,在此不予赘述。

优选地,于步骤s202中,在写入每个文件的文件属性时,判断是否已存在相应的属性文件,若已存在对应的属性文件,则将要写入的文件属性与已存在的属性文件的内容进行比较,若属性内容不同,则将要写入的文件属性写入该属性文件,否则则不予写入。

步骤s3,执行恢复任务,在灾备机同步每个文件时,从与该文件相关的属性文件中读取该文件的属性,记录到属性结构体中,与文件内容一起,发送到工作机端,待文件数据内容恢复后,将把属性内容写到文件中。

具体地,恢复任务建立后,从与所要恢复的文件同级的目录下的属性文件.os.a.filename中读取相应的文件属性,发送到工作机端并存于内存中,工作机端根据当前系统平台来判断属性的数据结构,将内存中的属性buff保存到属性数据结构中,再将该结构写入文件,对文件进行属性设置。在本发明具体实施例中,操作系统只有两种,即linux和windows平台,两种操作系统的属性结构是不一样的,工作机端则需要调用对应操作系统的api接口设置文件属性,按照接口规定的属性结构来存储文件属性。

图3为本发明一种跨平台的文件属性的备份及恢复系统的系统架构图。如图3所示,本发明一种跨平台的文件属性的备份及恢复系统,包括:

工作机端30,用于执行备份文件任务,遍历工作机要发送的文件目录,读取文件以及文件的属性,依次发送至灾备机备份目录,于在恢复任务过程中,接收灾备机发送所要恢复的每个文件及其对应的属性结构,在文件的数据内容恢复后,根据当前系统平台判断属性的数据结构,将内存中的属性buff保存到属性数据结构中,再将该数据结构写入文件,对文件进行属性设置。

在本发明中,工作机端30具体用于:

读取工作机要发送的文件目录下文件的属性结构,读取其中的基本属性发送至灾备机。

在本发明中,文件属性保存在内存buf中,包括基本属性和高级属性,其中基本属性长度是固定的,高级属性不固定长度,具体地,工作机数据目录下的文件的属性结构attrstruct包括基本属性attr_common和高级属性attr_advance,其中基本属性attr_common中包含文件的大小filesize、文件权限改变时间ctime、文件内容修改事件mtime、文件最后访问时间atime,用来判断是否需要传输数据,以及判断传输数据的大小,在本步骤中,读取文件属性结构attrstruct中的基本属性attr_common发送至灾备机,并保存基本属性attr_common的值到灾备机的内存中。

依次发送文件到灾备机,并在每个文件发送结束后,读取该文件的高级属性attr_advance发送到灾备机,在本发明中,文件的高级属性attr_advance包括属性长度bufflen、组用户id(gid)、用户id(uid)、用户权限mod、访问权限dacl以及控制权限sacl。

在恢复任务过程中,当接收灾备机发送的每个文件及其对应的属性结构,先进行文件数据内容的恢复,在文件数据内容恢复后,根据当前系统平台判断属性的数据结构,将内存中的属性buff保存到属性数据结构中,再将该数据结构写入文件,对文件进行属性设置。

灾备机端31,接收工作机端发送所要备份的文件及文件属性,将接收的文件写入灾备机备份目录,并将接收的文件属性写入文件同级目录下的属性文件,按照字符流的顺序写入,包含文件基本属性和高级属性,执行恢复任务时,在同步每个文件时,从与该文件相关的属性文件中读取该文件的属性,记录到属性结构体中,与文件内容一起,发送到工作机端30。

在本发明中,灾备机端31具体用于:

当接收到文件的基本属性attr_common时,将基本属性attr_common的值保存到灾备机的内存中。

将接收到的文件写入灾备机备份目录,并将每个文件的高级属性attr_advance与之前保存的基本属性attr_common,一起写入文件同级目录下的属性文件中,在本发明具体实施例中,写入属性文件.os.a.filename中。

优选地,在写入每个文件的文件属性时,判断是否已存在相应的属性文件,若已存在对应的属性文件,则将要写入的文件属性与已存在的属性文件的内容进行比较,若属性内容不同,则将要写入的文件属性写入该属性文件,否则则不予写入。

恢复任务建立后,从与所要恢复的文件同级的目录下的属性文件.os.a.filename中读取相应的文件属性,与文件内容一起发送到工作机端40。

实施例

如图4所示,在本实施例中,工作机端为用户工作服务器,灾备机端为用户数据备份服务器。

在文件发送到灾备机之前,先读取工作机目录listdir下文件的属性结构attrstruct,首先发送属性结构attrstruct中的基本属性attr_common到灾备机,attr_common中包含文件的大小,用来判断是否需要传输数据,以及判断传输数据的大小,并保存attr_common的值到内存中。

然后工作机开始发送文件filedata到灾备机,每个文件发送结束后,再将文件的高级属性attr_advance发送到灾备机,灾备机把attr_advance属性和之前保存的attr_common属性,一起写入文件同级目录下的属性文件.os.a.filename中。

当再次同步同一个文件时,需将发送的属性和属性文件中的内容进行比较,如果属性内容不同再重新写入属性文件,如果属性相同则不写入,以避免重复记录。

如图5所示,当恢复任务建立后,从与恢复文件同级的目录下.os.a.filename中读取属性,发送到工作机端,工作机根据当前系统平台来判断属性的数据结构,把内存中的属性buff保存到属性数据结构中,再将该结构写入文件,对文件进行属性设置。

综上所述,本发明一种跨平台的文件属性的备份及恢复方法和系统通过执行备份文件任务时遍历工作机要发送的文件目录,读取文件以及文件的属性依次发送至灾备机,于灾备机端接收工作机端发送的文件及文件属性,将接收的文件写入灾备机备份目录,并将接收的文件属性写入文件同级目录下的属性文件,在执行恢复任务时,从灾备机同步每个文件时,从与该文件相关的属性文件中读取该文件的属性,记录到属性结构体中,与文件内容一起,发送到工作机端,待文件数据内容恢复后,将把属性内容写到文件中,解决了文件数据备份到不同平台的操作系统后再恢复时出现的文件属性不一致问题。。

上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何本领域技术人员均可在不违背本发明的精神及范畴下,对上述实施例进行修饰与改变。因此,本发明的权利保护范围,应如权利要求书所列。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1