CN115277681B - 避免同步过程冲突的文件同步方法和装置 - Google Patents

避免同步过程冲突的文件同步方法和装置 Download PDF

Info

Publication number
CN115277681B
CN115277681B CN202210912394.2A CN202210912394A CN115277681B CN 115277681 B CN115277681 B CN 115277681B CN 202210912394 A CN202210912394 A CN 202210912394A CN 115277681 B CN115277681 B CN 115277681B
Authority
CN
China
Prior art keywords
file
synchronization
synchronous
task
synchronized
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.)
Active
Application number
CN202210912394.2A
Other languages
English (en)
Other versions
CN115277681A (zh
Inventor
吴灿强
孙贝
李光耀
杨施俊
刘瑶
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hillstone Networks Co Ltd
Original Assignee
Hillstone Networks Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hillstone Networks Co Ltd filed Critical Hillstone Networks Co Ltd
Priority to CN202210912394.2A priority Critical patent/CN115277681B/zh
Publication of CN115277681A publication Critical patent/CN115277681A/zh
Application granted granted Critical
Publication of CN115277681B publication Critical patent/CN115277681B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Hardware Redundancy (AREA)

Abstract

本申请公开了一种避免同步过程冲突的文件同步方法和装置。该方法包括:接收端服务器接收第一同步源服务器发送的第一同步任务信息,并判断对应的待同步文件是否存在于第一任务清单中;在存在的情况下,在第一任务清单中获取存在待同步文件的第一目标同步任务的同步源服务器地址和目的存储路径,并判断与待同步文件的同步源服务器地址是否相同;在相同的情况下,删除第一目标同步任务已同步至接收端服务器的文件,并重新同步待同步文件;在不同的情况下,更新第一目标同步任务的同步源服务器地址和目的存储路径。通过本申请,解决了相关技术中通过备份工具进行文件同步时,在同步任务的目的地址相同的情况下同步过程会产生冲突的问题。

Description

避免同步过程冲突的文件同步方法和装置
技术领域
本申请涉及文件同步技术领域,具体而言,涉及一种避免同步过程冲突的文件同步方法和装置。
背景技术
文件同步是数据处理中的一种重要的处理过程,相关技术中可以利用rsync备份工具实现文件实时同步,再根据文件校验码的校验工具对同步结果进行校验。
但是,一方面,rsync工具本身只负责数据同步,多个同步源对应的上层业务难以获知同步结果是否失败,难以确定何时需要重启同步过程、同步文件何时可以被上层业务使用。另一方面,由于rsync工具以目的地址文件名作为文件的唯一区分依据,只适用于源目的地址为一对一关系的场景。当有两个或两个以上的源同时同步不同文件到同一个目的地址时,会导致同步过程出错,最终目的文件仅保留多个不同文件中文件大小最大的一个。rsync工具也没有保证目的文件的准确性和一致性的机制,在最终目的文件仅最大文件的情况下,在多个同步任务只执行成功一个,但多个同步源以为各自的同步任务都成功了。
针对相关技术中通过rsync工具进行文件同步时,在同步任务的目的地址相同的情况下同步过程会产生冲突的问题,目前尚未提出有效的解决方案。
发明内容
本申请提供一种避免同步过程冲突的文件同步方法和装置,以解决相关技术中通过rsync工具进行文件同步时,在同步任务的目的地址相同的情况下同步过程会产生冲突的问题。
根据本申请的一个方面,提供了一种避免同步过程冲突的文件同步方法。该方法包括:接收端服务器接收第一同步源服务器发送的第一同步任务信息,并判断第一同步任务信息所指示的待同步文件是否存在于第一任务清单中,其中,第一任务清单存储在接收端服务器中,第一任务清单用于记录接收端服务器待执行的同步任务;在待同步文件存在于第一任务清单中的情况下,在第一任务清单中确定存在待同步文件的第一目标同步任务,获取第一目标同步任务的同步源服务器地址和目的存储路径,并判断待同步文件的同步源服务器地址和第一目标同步任务的同步源服务器地址是否相同;在待同步文件的同步源服务器地址和第一目标同步任务的同步源服务器地址相同的情况下,删除在执行第一目标同步任务的过程中已同步至接收端服务器的文件,并向第一同步源服务器发送第一指示信息,其中,第一指示信息指示重新同步待同步文件;在待同步文件的同步源服务器地址和第一目标同步任务的同步源服务器地址不同的情况下,根据待同步文件的同步源服务器地址和目的存储路径更新第一目标同步任务的同步源服务器地址和目的存储路径,并向第一同步源服务器发送第二指示信息,其中,第二指示信息指示待同步文件处于同步状态。
可选地,接收端服务器接收第一同步源服务器发送的第一同步任务信息,并判断第一同步任务信息所指示的待同步文件是否存在于第一任务清单中包括:获取第一同步任务信息中的目标文件信息,其中,目标文件信息至少包括:文件名、文件大小以及文件的校验码;判断第一任务清单中的各个同步任务中是否包含目标文件信息,并在任意一个同步任务中包含目标文件信息的情况下,确定待同步文件存在于第一任务清单中。
可选地,在待同步文件的同步源服务器地址和第一目标同步任务的同步源服务器地址不同的情况下,根据待同步文件的同步源服务器地址和目的存储路径更新第一目标同步任务的同步源服务器地址和目的存储路径包括:在待同步文件的同步源服务器地址和第一目标同步任务的同步源服务器地址不同的情况下,判断待同步文件的目的存储路径和第一目标同步任务的目的存储地址是否相同;在待同步文件的目的存储路径和第一目标同步任务的目的存储地址相同的情况下,将待同步文件的同步源服务器地址增加至第一目标同步任务中;在待同步文件的目的存储路径和第一目标同步任务的目的存储地址不同的情况下,将待同步文件的同步源服务器地址和目的存储路径均增加至第一目标同步任务中。
可选地,在接收端服务器接收第一同步源服务器发送的第一同步任务信息之前,该方法还包括:接收端服务器接收第一同步源服务器发送的同步任务请求信息,并从同步任务请求信息中获取待同步文件的目的存储路径,其中,同步任务请求信息是第一同步源服务器根据目标应用程序发起的同步任务请求后生成的信息;判断待同步文件的目的存储路径是否满足预设要求;在待同步文件的目的存储路径满足预设要求的情况下,向第一同步源服务器发送第一响应信息,其中,第一响应信息指示允许执行文件同步;在待同步文件的目的存储路径不满足预设要求的情况下,向第一同步源服务器发送第二响应信息,其中,第二响应信息指示拒绝执行文件同步。
可选地,在第一同步源服务器在接收到接收端服务器发起的第一响应信息后,向目标应用程序反馈所请求同步的文件处于同步状态;在第一同步源服务器在接收到接收端服务器发起的第二响应信息后,向目标应用程序反馈拒绝文件同步的信息。
可选地,第一同步源服务器在接收到目标应用程序发起的同步任务请求后,在第一同步任务信息所请求同步的文件存在于第二任务清单中的情况下,向目标应用程序反馈所请求同步的文件处于同步状态,其中,第二任务清单存储在第一同步源服务器中存储中,第二任务清单用于记录第一同步源服务器待执行的同步任务。
可选地,在向第一同步源服务器发送指示信息之后,该方法还包括:在接收到第二同步源服务器发送的第二同步任务信息的情况下,从第二同步任务信息中获取存储文件名和存储目录,得到目标存储文件名和目标存储目录,其中,存储文件名是待同步文件存储后所使用的文件名,存储目录为待同步文件的存储至的目录;并判断第一任务清单中是否存在第二同步任务信息对应的第二目标同步任务,其中,第二目标同步任务是指同步源服务器不是第二同步源服务器,但是存储文件名与目标存储文件名相同、存储目录与目标存储目录相同的同步任务;在第一任务清单中不存在第二目标同步任务的情况下,执行在第一任务清单中确定存在待同步文件的第一目标同步任务的步骤;在第一任务清单中存在第二目标同步任务的情况下,向发送同步任务信息的第二同步源服务器反馈第三响应信息,其中,第三响应信息指示拒绝同步同名文件。
可选地,在向第一同步源服务器发送第一指示信息之后,该方法还包括:接收端服务器接收第一同步源服务器发送的端口开放指令以及进程启动指令,其中,第一同步源服务器安装有数据备份工具,用于将文件从第一同步源服务器同步至接收端服务器,接收端服务器安装有备份接收程序,用于接收数据备份工具传输的文件;基于端口开放指令开放接收端服务器与第一同步源服务器之间的通讯端口,基于进程启动指令启动备份接收程序,并向第一同步源服务器发送指令完成响应信息,其中,指令完成响应信息用于指示端口开放指令以及进程启动指令均执行完毕;通过备份接收程序接收数据备份工具发送的待同步文件,并在检测到第一同步源服务器发送的端口关闭指令和进程关闭指令的情况下,关闭数据备份工具的通讯端口,并关闭备份接收程序。
可选地,通过备份接收程序接收数据备份工具发送的待同步文件包括:接收第一同步源服务器发送的同步结果检查指令,并计算接收到的待同步文件的校验码;获取第一任务清单中记录的待同步文件的校验码,将计算得到的校验码与记录的校验码进行比较;在计算得到的校验码与记录的校验码相同的情况下, 将同步文件存储至目的存储路径,并向第一同步源服务器发送同步结果检查指令的响应信息。
根据本申请的另一方面,提供了一种避免同步过程冲突的文件同步装置。该装置包括:第一接收单元,用于通过接收端服务器接收第一同步源服务器发送的第一同步任务信息,并判断第一同步任务信息所指示的待同步文件是否存在于第一任务清单中,其中,第一任务清单存储在接收端服务器中,第一任务清单用于记录接收端服务器待执行的同步任务;第一获取单元,用于在待同步文件存在于第一任务清单中的情况下,在第一任务清单中确定存在待同步文件的第一目标同步任务,获取第一目标同步任务的同步源服务器地址和目的存储路径,并判断待同步文件的同步源服务器地址和第一目标同步任务的同步源服务器地址是否相同;删除单元,用于在待同步文件的同步源服务器地址和第一目标同步任务的同步源服务器地址相同的情况下,删除在执行第一目标同步任务的过程中已同步至接收端服务器的文件,并向第一同步源服务器发送第一指示信息,其中,第一指示信息指示重新同步待同步文件;更新单元,用于在待同步文件的同步源服务器地址和第一目标同步任务的同步源服务器地址不同的情况下,根据待同步文件的同步源服务器地址和目的存储路径更新第一目标同步任务的同步源服务器地址和目的存储路径,并向第一同步源服务器发送第二指示信息,其中,第二指示信息指示待同步文件处于同步状态。
根据本发明实施例的另一方面,还提供了一种计算机存储介质,计算机存储介质用于存储程序,其中,程序运行时控制计算机存储介质所在的设备执行一种避免同步过程冲突的文件同步方法。
根据本发明实施例的另一方面,还提供了一种电子装置,包含处理器和存储器;存储器中存储有计算机可读指令,处理器用于运行计算机可读指令,其中,计算机可读指令运行时执行一种避免同步过程冲突的文件同步方法。
通过本申请,采用以下步骤:接收端服务器接收第一同步源服务器发送的第一同步任务信息,并判断第一同步任务信息所指示的待同步文件是否存在于第一任务清单中,其中,第一任务清单存储在接收端服务器中,第一任务清单用于记录接收端服务器待执行的同步任务;在待同步文件存在于第一任务清单中的情况下,在第一任务清单中确定存在待同步文件的第一目标同步任务,获取第一目标同步任务的同步源服务器地址和目的存储路径,并判断待同步文件的同步源服务器地址和第一目标同步任务的同步源服务器地址是否相同;在待同步文件的同步源服务器地址和第一目标同步任务的同步源服务器地址相同的情况下,删除在执行第一目标同步任务的过程中已同步至接收端服务器的文件,并向第一同步源服务器发送第一指示信息,其中,第一指示信息指示重新同步待同步文件;在待同步文件的同步源服务器地址和第一目标同步任务的同步源服务器地址不同的情况下,根据待同步文件的同步源服务器地址和目的存储路径更新第一目标同步任务的同步源服务器地址和目的存储路径,并向第一同步源服务器发送第二指示信息,其中,第二指示信息指示待同步文件处于同步状态,解决了相关技术中通过备份工具进行文件同步时,在同步任务的目的地址相同的情况下同步过程会产生冲突的问题。通过对源地址相同的文件进行重新同步,对源地址不同的文件修改同步任务,进而达到了在同步相同文件的情况下,同步任务不会产生冲突的效果。
附图说明
构成本申请的一部分的附图用来提供对本申请的进一步理解,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例提供的文件同步系统的示意图;
图2是根据本申请实施例提供的可选的文件同步系统的示意图;
图3是根据本申请实施例提供的一种避免同步过程冲突的文件同步方法的流程图;
图4是根据本申请实施例提供的可选的避免同步过程冲突的文件同步方法的流程图一;
图5是根据本申请实施例提供的可选的避免同步过程冲突的文件同步方法的流程图二;
图6是根据本申请实施例提供的避免同步过程冲突的文件同步装置的示意图。
具体实施方式
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
需要说明的是,本公开所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于展示的数据、分析的数据等),均为经用户授权或者经过各方充分授权的信息和数据。
为了便于描述,以下对本申请实施例涉及的部分名词或术语进行说明:
Rsync:linux系统下的数据镜像备份工具。使用快速增量备份工具Remote Sync可以远程同步,支持本地复制,或者与其他SSH、rsync主机同步。
实施例1
根据本申请的实施例,提供了一种文件同步系统。
图1是根据本申请实施例的文件同步系统的示意图。如图1所示,该系统包括同步源服务器101和接收端服务器102。
需要说明的是,同步源服务器101和接收端服务器102的数量均不作限定,同步源服务器101和接收端服务器102可以是一对多的关系,也可以是多对一的关系,还可以是多对多的关系,即一个同步源服务器101可以同时向多个接收端服务器102同步文件,一个接收端服务器102也可以同时接收来自于多个同步源服务器101的同步文件。
同步源服务器101和接收端服务器102之间通过经安全认证的通信通道进行数据传输,通信通道需依赖其它服务和应用进行建立及维护,在一种实施方式中,同步源服务器101与接收端服务器102之间已建立了HTTPS安全认证交互通道,同步源服务器101通过HTTPS通道向接收端服务器102下发指令,接收端服务器102通过HTTPS通道向同步源服务器101返回指令完成结果等。需要说明的是,本实施例的通信通道包括但不限于HTTPS连接。
在一种可选的实施例中,如图2所示,同步源服务器101运行并维护同步任务管理器和备份工具,同步任务管理器是一个功能应用模块,以系统后台进程或系统服务等方式常驻并运行于同步源服务器101上,并开放部分端口以接收目标应用程序(图2中的上层应用系统)发出的文件同步请求,备份工具可以为rsync工具,通过rsync工具执行同步请求所指示的文件同步任务。
接收端服务器102运行并维护代理模块(同步任务接收端代理)和备份工具的接收端程序,同步任务接收端代理是一个功能应用模块,对接收端服务器102的操作系统提供功能入口,以响应来自HTTPS安全认证通道的请求。备份接收程序可以为rsync工具的接收端程序,接收rsync工具传输的文件,并转发至指定路径,从而完成文件同步任务。
需要说明的是,上层应用包括但不限于任何能够发起请求的功能模块或应用,可运行于任意服务器上,如图2所示,上层应用可以运行在同步源服务器101和接收端服务器102之外的服务器上,上层应用也可以运行在同步源服务器101或接收端服务器102上,其中请求形式没有具化,可以是HTTP请求也可以是其它方式的请求,具体取决于同步任务管理器接收请求命令方式的设计和实现。
在执行文件同步任务的过程中,同步任务管理器维护有一份同步任务清单,通过下发同步控制命令控制接收端的代理模块配合完成同步准备工作和收尾工作,辅以同步任务监控实现同步工作的可重传机制,并借助rsync工具完成大文件的快速同步。其中,同步任务清单记录当前正在同步的文件相关信息、接收端服务器102IP、文件的源存储路径、接收端文件存储路径、同步发起时间戳,文件相关信息包括文件名、文件MD5、文件大小等。
同步任务接收端代理同样维护有一份同步任务清单,同步任务接收端代理接收来自同步任务管理器下发的同步控制命令,根据命令完成具体的操作,同时负责对rsync工具接收端进程的管理,借以rsync工具接收端进程接收来自同步任务管理器的同步文件,并对同步结果检查后跟同步任务管理器反馈同步进展情况,其中,同步任务清单记录了当前正在同步的文件相关信息、文件的源存储路径、接收端文件存储路径、同步源服务器101IP地址等,文件相关信息包括文件名、文件MD5、文件大小等。
需要说明的是,同步源服务器101IP地址可记录多个,对应于来自不同同步源服务器101发起的对同一个文件的同步请求。文件存储路径也可记录多个,对应于来自不同同步任务对同一个文件同步至不同路径下的需求。在上述情况下,同步文件只需借助rsync工具在服务器间传递一次,同步完成之后首先存放于中转路径,再由中转路径拷贝到不同存储路径下,即实现相同文件只需要同步一次,进一步提高文件同步可靠性。
基于rsync工具的可复用性,同步任务管理器可以维护和处理多个同步任务,同步任务接收端代理也可以同时处理多个同步文件的接收过程。其中,对于同步任务管理器来说,同一个同步任务的判别标准为两个任务对应的文件名、文件大小、文件MD5、接收端服务器102IP地址以及接收端文件存储路径均相同。而对于同步任务接收端代理来说,同一个同步任务的判别标准为两个任务对应的文件名、文件大小、文件MD5、同步源服务器101IP地址以及所接收文件的存储路径均相同。需要说明的是,同步任务清单的存储方式包括但不局限于文件,但不论基于哪个方式存储,对于同步任务清单的操作都是互斥的,即一次只能有一个同步任务读或者写。
此外,需要说明的是,本实施例将文件大小超过100GB的文件称为大文件,本实施例的文件同步方式是出于对该类文件在通过HTTP等方式同步时可能存在耗时很长、同步过程容易断开连接等问题而提出的,但本实施例还适用于其他大小的文件的同步。
实施例2
根据本申请的实施例,提供了一种避免同步过程冲突的文件同步方法。
图3是根据本申请实施例的避免同步过程冲突的文件同步方法的流程图。如图3所示,该方法包括以下步骤:
步骤S301,接收端服务器接收第一同步源服务器发送的第一同步任务信息,并判断第一同步任务信息所指示的待同步文件是否存在于第一任务清单中,其中,第一任务清单存储在接收端服务器中,第一任务清单用于记录接收端服务器待执行的同步任务。
具体地,第一同步源服务器可以为多个同步源服务器中的一个,同步源服务器是用于执行文件同步的服务器,接收端服务器是用于接收同步文件的服务器。
第一同步任务信息是第一同步源服务器在接收到上层应用系统的文件同步请求时获取的数据,第一同步任务信息中可以包括待同步文件的文件名、文件MD5值、文件大小以及期望该文件在接收端服务器上的存储地址等信息。需要说明的是,同步源服务器中还维护有第二任务清单,该清单中记录了文件当前待执行的同步任务的文件相关信息、接收端服务器IP、文件的源存储路径、接收端文件存储路径、同步发起时间戳,文件相关信息包括文件名、文件MD5、文件大小等。可以将第一同步任务信息和第一任务清单中记录的信息进行比较,判断第一同步任务信息所指示的待同步文件是否存在于第一任务清单中。
步骤S302,在待同步文件存在于第一任务清单中的情况下,在第一任务清单中确定存在待同步文件的第一目标同步任务,获取第一目标同步任务的同步源服务器地址和目的存储路径,并判断待同步文件的同步源服务器地址和第一目标同步任务的同步源服务器地址是否相同。
可选地,在本申请实施例提供的避免同步过程冲突的文件同步方法中,接收端服务器接收第一同步源服务器发送的第一同步任务信息,并判断第一同步任务信息所指示的待同步文件是否存在于第一任务清单中包括:获取第一同步任务信息中的目标文件信息,其中,目标文件信息至少包括:文件名、文件大小以及文件的校验码;判断第一任务清单中的各个同步任务中是否包含目标文件信息,并在任意一个同步任务中包含目标文件信息的情况下,确定待同步文件存在于第一任务清单中。
具体地,将目标文件信息和第一任务清单中的各个同步任务关联的文件信息分别进行对比,在一个同步任务关联的文件信息与目标文件信息均相同的情况下,确定待同步文件存在于第一任务清单中。具体地,在待同步文件存在于第一任务清单中的情况下,说明接收端服务器已经存在相同的文件处于同步状态,获取该处于同步状态的文件对应的同步任务,得到第一目标同步任务,然后判断第一目标同步任务和待同步文件对应的同步任务是否为相同的同步任务。
相同的同步任务是指不仅待同步的文件内容相同,待同步的文件的来源以及待同步至的地址也相同,因而,获取需要判断两个相同的文件的来源以及待同步至的地址是否相同。
步骤S303,在待同步文件的同步源服务器地址和第一目标同步任务的同步源服务器地址相同的情况下,删除在执行第一目标同步任务的过程中已同步至接收端服务器的文件,并向第一同步源服务器发送第一指示信息,其中,第一指示信息指示重新同步待同步文件。
具体地,在待同步文件和第一目标同步任务的同步源服务器地址相同的情况下,说明第一目标任务先前可能因为某些原因中断或出错,第一同步任务信息对应的同步请求为同步源服务器对该文件的重新同步操作,接收端服务器删除出错的同步文件,并向第一同步源服务器发送“准备工作就绪,可以同步”的指示信息。
步骤S304,在待同步文件的同步源服务器地址和第一目标同步任务的同步源服务器地址不同的情况下,根据待同步文件的同步源服务器地址和目的存储路径更新第一目标同步任务的同步源服务器地址和目的存储路径,并向第一同步源服务器发送第二指示信息,其中,第二指示信息指示待同步文件处于同步状态。
具体地,在待同步文件和第一目标同步任务的同步源服务器地址不同的情况下,说明第一同步任务信息对应的同步请求是来自于不同的同步源服务器发起的同步请求,无需重新建立同步任务,只需更新第一目标同步任务的同步源服务器地址,表明该任务中的待同步文件来自不同的同步源服务器,若待同步文件和第一目标同步任务的目的存储路径也不同的情况下,更新第一目标同步任务的目的存储路径,表明该任务中的待同步文件需要同步至不同的目的存储路径。
进一步的,在更新第一目标同步任务的同步源服务器地址和目的存储路径之后,说明第一任务清单中的同步任务的相关信息是最新的信息,第一同步源服务器可以进行文件同步,向第一同步源服务器发送 “文件同步中”的指示信息,在待同步文件同步完成后,接收端服务器向同步源服务器返回“同步完成”的响应信息。
本申请实施例提供的避免同步过程冲突的文件同步方法,通过接收端服务器接收第一同步源服务器发送的第一同步任务信息,并判断第一同步任务信息所指示的待同步文件是否存在于第一任务清单中,其中,第一任务清单存储在接收端服务器中,第一任务清单用于记录接收端服务器待执行的同步任务;在待同步文件存在于第一任务清单中的情况下,在第一任务清单中确定存在待同步文件的第一目标同步任务,获取第一目标同步任务的同步源服务器地址和目的存储路径,并判断待同步文件的同步源服务器地址和第一目标同步任务的同步源服务器地址是否相同;在待同步文件的同步源服务器地址和第一目标同步任务的同步源服务器地址相同的情况下,删除在执行第一目标同步任务的过程中已同步至接收端服务器的文件,并向第一同步源服务器发送第一指示信息,其中,第一指示信息指示重新同步待同步文件;在待同步文件的同步源服务器地址和第一目标同步任务的同步源服务器地址不同的情况下,根据待同步文件的同步源服务器地址和目的存储路径更新第一目标同步任务的同步源服务器地址和目的存储路径,并向第一同步源服务器发送第二指示信息,其中,第二指示信息指示待同步文件处于同步状态,解决了相关技术中通过备份工具进行文件同步时,在同步任务的目的地址相同的情况下同步过程会产生冲突的问题。通过对源地址相同的文件进行重新同步,对源地址不同的文件修改同步任务,进而达到了在同步相同文件的情况下,同步任务不会产生冲突的效果。
可选地,在本申请实施例提供的避免同步过程冲突的文件同步方法中,在待同步文件的同步源服务器地址和第一目标同步任务的同步源服务器地址不同的情况下,根据待同步文件的同步源服务器地址和目的存储路径更新第一目标同步任务的同步源服务器地址和目的存储路径包括:在待同步文件的同步源服务器地址和第一目标同步任务的同步源服务器地址不同的情况下,判断待同步文件的目的存储路径和第一目标同步任务的目的存储地址是否相同;在待同步文件的目的存储路径和第一目标同步任务的目的存储地址相同的情况下,将待同步文件的同步源服务器地址增加至第一目标同步任务中;在待同步文件的目的存储路径和第一目标同步任务的目的存储地址不同的情况下,将待同步文件的同步源服务器地址和目的存储路径均增加至第一目标同步任务中。
具体地,在待同步文件的同步源服务器地址和第一目标同步任务的同步源服务器地址不同,待同步文件的目的存储路径和第一目标同步任务的目的存储地址相同的情况下,只需更新同步任务清单中跟该任务所同步文件相关联的记录的同步源服务器地址,也即,新增第一同步源服务器IP地址,表明该任务中的待同步文件来自多个不同的同步源服务器。
而在待同步文件的同步源服务器地址和第一目标同步任务的同步源服务器地址不同,待同步文件的目的存储路径和第一目标同步任务的目的存储地址也不同的情况下,不仅需要更新同步任务清单中跟该任务所同步文件相关联的记录的同步源服务器地址,而且需要更新目的地址信息,也即,新增第一同步源服务器IP地址,并新增该任务期望在接收端服务器上的存储地址信息,表明该任务中的待同步文件来自多个不同的同步源服务器,且需要同步至不同的目的存储路径。
可选地,在本申请实施例提供的避免同步过程冲突的文件同步方法中,在接收端服务器接收第一同步源服务器发送的第一同步任务信息之前,该方法还包括:接收端服务器接收第一同步源服务器发送的同步任务请求信息,并从同步任务请求信息中获取待同步文件的目的存储路径,其中,同步任务请求信息是第一同步源服务器根据目标应用程序发起的同步任务请求后生成的信息;判断待同步文件的目的存储路径是否满足预设要求;在待同步文件的目的存储路径满足预设要求的情况下,向第一同步源服务器发送第一响应信息,其中,第一响应信息指示允许执行文件同步;在待同步文件的目的存储路径不满足预设要求的情况下,向第一同步源服务器发送第二响应信息,其中,第二响应信息指示拒绝执行文件同步。
需要说明的是,rsync工具本身支持从任意源地址将文件同步至任意目的地址,,出于对保证接收端服务器存储安全考虑,本实施例先判断待同步文件的目的存储路径是否满足预设要求,在满足要求预设要求的情况下,允许执行文件同步,不满足预设要求的情况下,拒绝执行文件同步。预设要求可以为,判断在接收端服务器上是否存在目的存储路径,在存在目的存储路径的情况下,判断目的存储路径是否对外开放了写入权限,若对外开放了写入权限,则说明待同步文件的目的存储路径满足预设要求,从而避免了接收端服务器上存储的文件被任意篡改的情况发生。
可选地,在本申请实施例提供的避免同步过程冲突的文件同步方法中,在第一同步源服务器在接收到接收端服务器发起的第一响应信息后,向目标应用程序反馈所请求同步的文件处于同步状态;在第一同步源服务器在接收到接收端服务器发起的第二响应信息后,向目标应用程序反馈拒绝文件同步的信息。
具体地,在第一同步源服务器在接收到接收端服务器发起响应信息后,将其转达至发起同步请求的目标应用程序,从而使得目标应用程序可以及时获知同步请求的执行情况。
在第一同步源服务器接收到同步请求信息,向接收端服务器发送的第一同步任务信息之前,可以提取判断是否存在相同的文件在同步执行,可选地,在本申请实施例提供的避免同步过程冲突的文件同步方法中,第一同步源服务器在接收到目标应用程序发起的同步任务请求后,在第一同步任务信息所请求同步的文件存在于第二任务清单中的情况下,向目标应用程序反馈所请求同步的文件处于同步状态,其中,第二任务清单存储在第一同步源服务器中存储中,第二任务清单用于记录第一同步源服务器待执行的同步任务。
具体地,第一同步源服务器维护有任务清单,该清单中记录了文件当前待执行的同步任务的文件相关信息、接收端服务器IP、文件的源存储路径、接收端文件存储路径、同步发起时间戳,文件相关信息包括文件名、文件MD5、文件大小等。第一同步源服务器在接收到目标应用程序发起的同步任务请求后,从中提取待同步文件的文件名、文件MD5值、文件大小以及期望该文件在接收端服务器上的存储地址等信息,和第一任务清单中记录的信息进行比较,判断待同步文件是否存在于第二任务清单中,若存在于第二任务清单中,则直接向目标应用程序反馈文件处于同步状态,无需将同步任务信息发送至接收端服务器。
文件在同步的过程中,存在需要先修改文件名再进行存储的情况,为保证同步文件的唯一性和一致性,解决rsync工具本身存在的对同名文件同步结果处理不当的问题,可选地,在本申请实施例提供的避免同步过程冲突的文件同步方法中,在向第一同步源服务器发送指示信息之后,该方法还包括:在接收到第二同步源服务器发送的第二同步任务信息的情况下,从第二同步任务信息中获取存储文件名和存储目录,得到目标存储文件名和目标存储目录,其中,存储文件名是待同步文件存储后所使用的文件名,存储目录为待同步文件的存储至的目录;并判断第一任务清单中是否存在第二同步任务信息对应的第二目标同步任务,其中,第二目标同步任务是指同步源服务器不是第二同步源服务器,但是存储文件名与目标存储文件名相同、存储目录与目标存储目录相同的同步任务;在第一任务清单中不存在第二目标同步任务的情况下,执行在第一任务清单中确定存在待同步文件的第一目标同步任务的步骤;在第一任务清单中存在第二目标同步任务的情况下,向发送同步任务信息的第二同步源服务器反馈第三响应信息,其中,第三响应信息指示拒绝同步同名文件。
也即,在不同的同步源服务器均以相同的文件名存储不同的文件时,运行先到达的同步任务的执行,拒绝后到达的同步任务的执行。
图4是根据本申请实施例提供的可选的避免同步过程冲突的文件同步方法的流程图一,是两个不同的同步源服务器A和同步源服务器B向同一接收端服务器同步同名文件的方法,如图4所示,该方法包括以下步骤:
首先,同步源服务器A向接收端服务器同步任务相关信息,其中包括期望该文件在接收端服务器上的存储地址(目录+文件名,文件名是指在目录中存储时使用的文件名),例如,可以为/xx/yy。
接收端服务器接收到同步任务相关信息之后,开始准备工作,在准备工作完成后,向同步源服务器A返回“准备工作就绪,可以同步”的响应,同步源服务器A在接收到响应之后向接收端服务器发起同步过程。
在这之后,同步源服务器B向同一接收端服务器同步任务相关信息,其中包括期望该文件在接收端服务器上的存储地址(目录+文件名),同样为/xx/yy。
接收端服务器接收到同步任务相关信息之后,开始准备工作,此时会发现同名文件有其它同步任务正在进行中,则向同步源服务器B返回“文件同名,拒绝同步”的响应,拒绝来自同步源服务器B的同步请求。
通过本实施例,不同同步源服务器对同一目标服务器同步同一文件到不同目录时,仅由其中第一个发起同步过程的同步源服务器向目标服务器同步文件,在同步结束再将文件拷贝到不同目录下,从而解决多同步源冲突同步同名文件的冲突问题。
在第一同步源服务器接收到“准备工作就绪,可以同步”的指示信息,执行文件同步,可选地,在本申请实施例提供的避免同步过程冲突的文件同步方法中,在向第一同步源服务器发送第一指示信息之后,该方法还包括:接收端服务器接收第一同步源服务器发送的端口开放指令以及进程启动指令,其中,第一同步源服务器安装有数据备份工具,用于将文件从第一同步源服务器同步至接收端服务器,接收端服务器安装有备份接收程序,用于接收数据备份工具传输的文件;基于端口开放指令开放接收端服务器与第一同步源服务器之间的通讯端口,基于进程启动指令启动备份接收程序,并向第一同步源服务器发送指令完成响应信息,其中,指令完成响应信息用于指示端口开放指令以及进程启动指令均执行完毕;通过备份接收程序接收数据备份工具发送的待同步文件,并在检测到第一同步源服务器发送的端口关闭指令和进程关闭指令的情况下,关闭数据备份工具的通讯端口,并关闭备份接收程序。
具体地,第一同步源服务器向接收端服务器发送端口开放指令以及进程启动指令,端口开放指令指使接收端服务器开放rsync工具同步通讯端口,进程启动指令指使接收端服务器运行rsync接收端程序。在接收到端口开放指令后,接收端服务器检查自身防火墙规则是否已放行rsync工具同步使用的主机端口,如已放行则无需进行操作,如没有放行则配置相关规则放行端口。在接收到进程启动指令后,接收端服务器检查自身是否已启动运行rsync工具的接收端程序的进程,如已开启则无需进行操作,如没有开启则启动rsync工具的接收端程序的进程。在已放行rsync工具同步使用的主机端口,并启动rsync工具的接收端程序的进程的情况下,接收端服务器向同步源服务器返回指令完成响应信息。
进一步的,在文件同步任务执行完毕之后,同步源服务器向接收端服务器发送端口关闭指令和进程关闭指令,接收端服务器响应端口关闭指令以关闭rsync工具同步使用的主机端口,以保证在没有同步任务时接收端服务器不对外暴露不需要端口,接收端服务器响应进程关闭指令以关闭rsync工具的接收端程序的进程,按需启动进程同样处于安全性考虑,尽量让接收端服务器不开启非必要进程,从而使得接收端服务器不容易处于一个易被攻击的状态,提高接收端服务器安全性。
在同步任务完成后,还需要保证同步的准确性可选地,在本申请实施例提供的避免同步过程冲突的文件同步方法中,通过备份接收程序接收数据备份工具发送的待同步文件包括:接收第一同步源服务器发送的同步结果检查指令,并计算接收到的待同步文件的校验码;获取第一任务清单中记录的待同步文件的校验码,将计算得到的校验码与记录的校验码进行比较;在计算得到的校验码与记录的校验码相同的情况下,将同步文件存储至目的存储路径,并向第一同步源服务器发送同步结果检查指令的响应信息。
具体地,校验码可以为文件的MD5值,在rsync工具每次执行完毕文件同步任务之后,任务管理器向接收端服务器发送同步结果检查指令,接收端服务器计算接收到的同步文件MD5值,并和同步任务清单中记录的MD5值比对,在MD5值相同的情况下表示文件成功同步,将同步文件拷贝至各指定路径下,向同步源服务器返回同步完成的响应信息,并从同步任务清单中清除跟该同步任务相关的记录,从而保证了文件同步的可靠性。
实施例3
图5是根据本申请实施例提供的可选的避免同步过程冲突的文件同步方法的流程图二,如图5所示,该方法包括:
1、在接收端服务器准备工作就绪的情况下,向同步源服务器返回“准备工作就绪,可以同步”的响应信息;
2、同步源服务器向接收端服务器发送开放端口指令和启动rsync接收端进程指令;
3、接收端服务器检查自身防火墙规则是否已放行rsync同步使用的主机端口,如没有放行,则配置相关规则放行端口,如已放行,则无需进行操作;
4、接收端服务器检查自身是否已启动运行rsync接收端进程,如未开启,则通过rsync工具本身命令启动rsync接收端进程,如已开启,则无需进行操作;
5、接收端服务器向同步源服务器返回“指令完成”的响应;
6、同步源服务器借助rsync工具向接收端服务器同步文件,同步的过程会持续一段时间,具体耗时因网络因素和文件本身大小而异,同步源服务器可以收到rsync工具的结果反馈,成功抑或失败;
7、文件同步结束后,同步源服务器向接收端服务器发送检查同步结果指令;
8、接收端服务器计算接收到的同步文件MD5值,并跟同步任务清单中记录的MD5值进行比对,不同则表示文件同步出错,接收端服务器删除出错的同步文件,接收端节点服务器向同步源节点服务器返回“同步失败”的响应,重新开始该文件同步过程;如果相同,表示文件成功同步,将同步文件拷贝至各指定路径下;接收端服务器向同步源服务器返回“同步失败”的响应,重新开始该文件同步过程,此次同步任务到此结束;
9、接收端服务器从同步任务清单中清除跟该同步任务相关的记录;
10、接收端服务器向各个同步源服务器返回“同步完成”的响应;
11、同步源服务器向接收端服务器发送关闭端口指令和关闭rsync接收端进程指令;
12、接收端服务器检查同步任务清单中是否仍有其它同步任务在进行中,若没有,接收端服务器删除相关防火墙规则以关闭rsync同步使用的主机端口,找到rsync接收端进程并关闭该进程;若有,接收端服务器向各个同步源服务器返回“同步结束”的响应,其中会携带同步任务相关的标志信息用以区分哪个任务同步结束;
13、同步源服务器从同步任务清单中清除跟该同步任务相关的记录,此次同步任务到此结束。
实施例4
以下是本申请的实施例应用在不同场景下的具体实现方式,需要说明的是,以下场景在文件同步的过程中可能出现一种,也可能出现多种:
场景一,同一文件同步:同步源服务器A向同步目标服务器B同步文件X。假定文件名为X,文件MD5为Y,文件大小为123,期望在目标服务器上的存储地址为Z。同步源服务器C向同步目标服务器B同步文件X。假定文件名为X,文件MD5为Y,文件大小为123,期望在目标服务器上的存储地址为Z。此时,仅有服务器A会向服务器B启动同步过程,文件借助rsync工具同步结束后,会一同通知服务器A和C文件同步完成。
场景二,同名文件同步:同步源服务器A向同步目标服务器B同步文件X。假定文件名为X,文件MD5为Y,文件大小为123,期望在目标服务器上的存储地址为Z。同步源服务器C向同步目标服务器B同步文件X。假定文件名为F,文件MD5为Q,文件大小为456,期望在目标服务器上的存储地址为Z。同步源服务器A先于同步源服务器C向同步目标服务器B同步任务相关信息。此时,仅有服务器A会向服务器B启动同步过程,文件借助rsync工具同步结束后,通知服务器A同步完成。服务器C的同步过程被拒绝。
场景三,文件同步错误重新同步:同步源服务器A向同步目标服务器B同步文件X。假定文件名为X,文件MD5为Y,文件大小为123,期望在目标服务器上的存储地址为Z。服务器A在借助rsync工具向服务器B同步文件过程中,由于网络波动或其它不可控原因,导致同步中断。借助于同步任务管理器的设计,服务器A会再次向服务器B同步文件X。
场景四,同一文件同步至不同目录下:同步源服务器A向同步目标服务器B同步文件X。假定文件名为X,文件MD5为Y,文件大小为123,期望在目标服务器上的存储地址为Z。同步源服务器C向同步目标服务器B同步文件X。假定文件名为X,文件MD5为Y,文件大小为123,期望在目标服务器上的存储地址为D。同步源服务器A先于同步源服务器C向同步目标服务器B同步任务相关信息。此时,仅有服务器A会向服务器B启动同步过程,文件借助rsync工具同步结束后,会一同通知服务器A和C文件同步完成。同时,文件X从服务器B的中转目录下同时拷贝至存储地址Z和D。
通过本实施例,通过同步源服务器对多个同步任务请求去重,保证同一个同步源服务器只会向同一个目标服务器发起对同一文件的同步过程。同步任务接收端代理负责同步过程去重,保证来自于不同同步源服务器的同步过程不会发生冲突,同一时间仅允许有一个同步源服务器往目标服务器相同目录写入相同名字的文件。而且在不同同步源服务器对同一目标服务器同步同一文件到不同目录时,仅由其中第一个发起同步过程的同步源服务器向目标服务器同步文件,在同步结束再将文件拷贝到不同目录下,以此解决多同步源冲突。在不同同步源服务器对同一目标服务器同步同一文件名文件时,同步任务接收端代理仅接收第一个同步请求,其余同步过程仅拒绝并通知对应的同步任务管理器同步错误。也即,解决rsync工具文件同步可能出现的多种文件碰撞冲突问题,从而保证了文件同步可靠性。
需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
实施例5
本申请实施例还提供了一种避免同步过程冲突的文件同步装置,需要说明的是,本申请实施例的避免同步过程冲突的文件同步装置可以用于执行本申请实施例所提供的用于避免同步过程冲突的文件同步方法。以下对本申请实施例提供的避免同步过程冲突的文件同步装置进行介绍。
图6是根据本申请实施例的避免同步过程冲突的文件同步装置的示意图。如图6所示,该装置包括:第一接收单元601、第一获取单元602、删除单元603以及更新单元604。
具体地,第一接收单元601,用于通过接收端服务器接收第一同步源服务器发送的第一同步任务信息,并判断第一同步任务信息所指示的待同步文件是否存在于第一任务清单中,其中,第一任务清单存储在接收端服务器中,第一任务清单用于记录接收端服务器待执行的同步任务。
第一获取单元602,用于在待同步文件存在于第一任务清单中的情况下,在第一任务清单中确定存在待同步文件的第一目标同步任务,获取第一目标同步任务的同步源服务器地址和目的存储路径,并判断待同步文件的同步源服务器地址和第一目标同步任务的同步源服务器地址是否相同。
删除单元603,用于在待同步文件的同步源服务器地址和第一目标同步任务的同步源服务器地址相同的情况下,删除在执行第一目标同步任务的过程中已同步至接收端服务器的文件,并向第一同步源服务器发送第一指示信息,其中,第一指示信息指示重新同步待同步文件。
更新单元604,用于在待同步文件的同步源服务器地址和第一目标同步任务的同步源服务器地址不同的情况下,根据待同步文件的同步源服务器地址和目的存储路径更新第一目标同步任务的同步源服务器地址和目的存储路径,并向第一同步源服务器发送第二指示信息,其中,第二指示信息指示待同步文件处于同步状态。
本申请实施例提供的避免同步过程冲突的文件同步装置,通过第一接收单元601,用于通过接收端服务器接收第一同步源服务器发送的第一同步任务信息,并判断第一同步任务信息所指示的待同步文件是否存在于第一任务清单中,其中,第一任务清单存储在接收端服务器中,第一任务清单用于记录接收端服务器待执行的同步任务;第一获取单元602,用于在待同步文件存在于第一任务清单中的情况下,在第一任务清单中确定存在待同步文件的第一目标同步任务,获取第一目标同步任务的同步源服务器地址和目的存储路径,并判断待同步文件的同步源服务器地址和第一目标同步任务的同步源服务器地址是否相同;删除单元603,用于在待同步文件的同步源服务器地址和第一目标同步任务的同步源服务器地址相同的情况下,删除在执行第一目标同步任务的过程中已同步至接收端服务器的文件,并向第一同步源服务器发送第一指示信息,其中,第一指示信息指示重新同步待同步文件;更新单元604,用于在待同步文件的同步源服务器地址和第一目标同步任务的同步源服务器地址不同的情况下,根据待同步文件的同步源服务器地址和目的存储路径更新第一目标同步任务的同步源服务器地址和目的存储路径,并向第一同步源服务器发送第二指示信息,其中,第二指示信息指示待同步文件处于同步状态,解决了相关技术中通过备份工具进行文件同步时,在同步任务的目的地址相同的情况下同步过程会产生冲突的问题,通过对源地址相同的文件进行重新同步,对源地址不同的文件修改同步任务,进而达到了在同步相同文件的情况下,同步任务不会产生冲突的效果。
可选地,在本申请实施例提供的避免同步过程冲突的文件同步装置中,第一接收单元601包括:第一获取模块,用于获取第一同步任务信息中的目标文件信息,其中,目标文件信息至少包括:文件名、文件大小以及文件的校验码;第一判断模块,用于判断第一任务清单中的各个同步任务中是否包含目标文件信息,并在任意一个同步任务中包含目标文件信息的情况下,确定待同步文件存在于第一任务清单中。
可选地,在本申请实施例提供的避免同步过程冲突的文件同步装置中,更新单元604包括:第二判断模块,用于在待同步文件的同步源服务器地址和第一目标同步任务的同步源服务器地址不同的情况下,判断待同步文件的目的存储路径和第一目标同步任务的目的存储地址是否相同;第一添加模块,用于在待同步文件的目的存储路径和第一目标同步任务的目的存储地址相同的情况下,将待同步文件的同步源服务器地址增加至第一目标同步任务中;第二添加模块,用于在待同步文件的目的存储路径和第一目标同步任务的目的存储地址不同的情况下,将待同步文件的同步源服务器地址和目的存储路径均增加至第一目标同步任务中。
可选地,在本申请实施例提供的避免同步过程冲突的文件同步装置中,该装置还包括:第二接收单元,用于在接收端服务器接收第一同步源服务器发送的第一同步任务信息之前,接收端服务器接收第一同步源服务器发送的同步任务请求信息,并从同步任务请求信息中获取待同步文件的目的存储路径,其中,同步任务请求信息是第一同步源服务器根据目标应用程序发起的同步任务请求后生成的信息;第一判断单元,用于判断待同步文件的目的存储路径是否满足预设要求;第一发送单元,用于在待同步文件的目的存储路径满足预设要求的情况下,向第一同步源服务器发送第一响应信息,其中,第一响应信息指示允许执行文件同步;第二发送单元,用于在待同步文件的目的存储路径不满足预设要求的情况下,向第一同步源服务器发送第二响应信息,其中,第二响应信息指示拒绝执行文件同步。
可选地,在本申请实施例提供的避免同步过程冲突的文件同步装置中,第一反馈单元,用于在第一同步源服务器在接收到目标应用程序发起的同步任务请求后,在第一同步任务信息所请求同步的文件存在于第二任务清单中的情况下,向目标应用程序反馈所请求同步的文件处于同步状态,其中,第二任务清单存储在第一同步源服务器中存储中,第二任务清单用于记录第一同步源服务器待执行的同步任务。
可选地,在本申请实施例提供的避免同步过程冲突的文件同步装置中,第二反馈单元,用于在第一同步源服务器在接收到接收端服务器发起的第一响应信息后,向目标应用程序反馈所请求同步的文件处于同步状态;第三反馈单元,用于在第一同步源服务器在接收到接收端服务器发起的第二响应信息后,向目标应用程序反馈拒绝文件同步的信息。
可选地,在本申请实施例提供的避免同步过程冲突的文件同步装置中,在向第一同步源服务器发送指示信息之后,该装置还包括:第二获取单元,用于在接收到第二同步源服务器发送的第二同步任务信息的情况下,从第二同步任务信息中获取存储文件名和存储目录,得到目标存储文件名和目标存储目录,其中,存储文件名是待同步文件存储后所使用的文件名,存储目录为待同步文件的存储至的目录;第二判断单元,用于并判断第一任务清单中是否存在第二同步任务信息对应的第二目标同步任务,其中,第二目标同步任务是指同步源服务器不是第二同步源服务器,但是存储文件名与目标存储文件名相同、存储目录与目标存储目录相同的同步任务;执行单元,用于在第一任务清单中不存在第二目标同步任务的情况下,执行在第一任务清单中确定存在待同步文件的第一目标同步任务的步骤;第三发送单元,用于在第一任务清单中存在第二目标同步任务的情况下,向发送同步任务信息的第二同步源服务器反馈第三响应信息,其中,第三响应信息指示拒绝同步同名文件。
可选地,在本申请实施例提供的避免同步过程冲突的文件同步装置中,该装置还包括:第三接收单元,用于通过接收端服务器接收第一同步源服务器发送的端口开放指令以及进程启动指令,其中,第一同步源服务器安装有数据备份工具,用于将文件从第一同步源服务器同步至接收端服务器,接收端服务器安装有备份接收程序,用于接收数据备份工具传输的文件;指令执行单元,用于基于端口开放指令开放接收端服务器与第一同步源服务器之间的通讯端口,基于进程启动指令启动备份接收程序,并向第一同步源服务器发送指令完成响应信息,其中,指令完成响应信息用于指示端口开放指令以及进程启动指令均执行完毕;指令关闭单元,用于通过备份接收程序接收数据备份工具发送的待同步文件,并在检测到第一同步源服务器发送的端口关闭指令和进程关闭指令的情况下,关闭数据备份工具的通讯端口,并关闭备份接收程序。
可选地,在本申请实施例提供的避免同步过程冲突的文件同步装置中,指令关闭单元包括:接收模块,用于接收第一同步源服务器发送的同步结果检查指令,并计算接收到的待同步文件的校验码;第二获取模块,用于获取第一任务清单中记录的待同步文件的校验码,将计算得到的校验码与记录的校验码进行比较;存储模块,用于在计算得到的校验码与记录的校验码相同的情况下, 将同步文件存储至目的存储路径,并向第一同步源服务器发送同步结果检查指令的响应信息。
上述避免同步过程冲突的文件同步装置包括处理器和存储器,上述第一接收单元601、第一获取单元602、删除单元603以及更新单元604等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来解决相关技术中通过rsync工具进行文件同步时,在同步任务的目的地址相同的情况下同步过程会产生冲突的问题。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
本申请实施例还提供了一种计算机存储介质,计算机存储介质用于存储程序,其中,程序运行时控制计算机存储介质所在的设备执行一种避免同步过程冲突的文件同步方法。
本申请实施例还提供了一种电子装置,包含处理器和存储器;存储器中存储有计算机可读指令,处理器用于运行计算机可读指令,其中,计算机可读指令运行时执行一种避免同步过程冲突的文件同步方法。本文中的电子装置可以是服务器、PC、PAD、手机等。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器 (CPU)、输入/输出接口、网络接口和内存。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存 (PRAM)、静态随机存取存储器 (SRAM)、动态随机存取存储器 (DRAM)、其他类型的随机存取存储器 (RAM)、只读存储器 (ROM)、电可擦除可编程只读存储器 (EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘 (DVD) 或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体 (transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (9)

1.一种避免同步过程冲突的文件同步方法,其特征在于,包括:
接收端服务器接收第一同步源服务器发送的第一同步任务信息,并判断所述第一同步任务信息所指示的待同步文件是否存在于第一任务清单中,其中,所述第一任务清单存储在所述接收端服务器中,所述第一任务清单用于记录所述接收端服务器待执行的同步任务;
在所述待同步文件存在于所述第一任务清单中的情况下,在所述第一任务清单中确定存在所述待同步文件的第一目标同步任务,获取所述第一目标同步任务的同步源服务器地址和目的存储路径,并判断所述待同步文件的同步源服务器地址和所述第一目标同步任务的同步源服务器地址是否相同;
在所述待同步文件的同步源服务器地址和所述第一目标同步任务的同步源服务器地址相同的情况下,确定所述第一目标同步任务先前因为某些原因中断或出错,删除在执行所述第一目标同步任务的过程中已同步至所述接收端服务器的文件,并向所述第一同步源服务器发送第一指示信息,其中,所述第一指示信息指示重新同步所述待同步文件;
在所述待同步文件的同步源服务器地址和所述第一目标同步任务的同步源服务器地址不同的情况下,确定所述第一同步任务信息对应的同步请求是来自于不同的同步源服务器发起的同步请求,根据所述待同步文件的同步源服务器地址和目的存储路径更新所述第一目标同步任务的同步源服务器地址和目的存储路径,并向所述第一同步源服务器发送第二指示信息,其中,所述第二指示信息指示所述待同步文件处于同步状态;
其中,根据所述待同步文件的同步源服务器地址和目的存储路径更新所述第一目标同步任务的同步源服务器地址和目的存储路径包括:
在所述待同步文件的同步源服务器地址和所述第一目标同步任务的同步源服务器地址不同的情况下,判断所述待同步文件的目的存储路径和所述第一目标同步任务的目的存储地址是否相同;
在所述待同步文件的目的存储路径和所述第一目标同步任务的目的存储地址相同的情况下,将所述待同步文件的同步源服务器地址增加至所述第一目标同步任务中;
在所述待同步文件的目的存储路径和所述第一目标同步任务的目的存储地址不同的情况下,将所述待同步文件的同步源服务器地址和目的存储路径均增加至所述第一目标同步任务中。
2.根据权利要求1所述的方法,其特征在于,接收端服务器接收第一同步源服务器发送的第一同步任务信息,并判断所述第一同步任务信息所指示的待同步文件是否存在于第一任务清单中包括:
获取所述第一同步任务信息中的目标文件信息,其中,所述目标文件信息至少包括:文件名、文件大小以及文件的校验码;
判断所述第一任务清单中的各个同步任务中是否包含所述目标文件信息,并在任意一个所述同步任务中包含所述目标文件信息的情况下,确定所述待同步文件存在于所述第一任务清单中。
3.根据权利要求1所述的方法,其特征在于,在接收端服务器接收第一同步源服务器发送的第一同步任务信息之前,所述方法还包括:
所述接收端服务器接收所述第一同步源服务器发送的同步任务请求信息,并从所述同步任务请求信息中获取待同步文件的目的存储路径,其中,所述同步任务请求信息是所述第一同步源服务器根据目标应用程序发起的同步任务请求后生成的信息;
判断所述待同步文件的目的存储路径是否满足预设要求;
在所述待同步文件的目的存储路径满足所述预设要求的情况下,向所述第一同步源服务器发送第一响应信息,其中,所述第一响应信息指示允许执行文件同步;
在所述待同步文件的目的存储路径不满足所述预设要求的情况下,向所述第一同步源服务器发送第二响应信息,其中,所述第二响应信息指示拒绝执行文件同步。
4.根据权利要求3所述的方法,其特征在于,在所述第一同步源服务器在接收到所述接收端服务器发起的所述第一响应信息后,向所述目标应用程序反馈所请求同步的文件处于同步状态;在所述第一同步源服务器在接收到所述接收端服务器发起的所述第二响应信息后,向所述目标应用程序反馈拒绝文件同步的信息。
5.根据权利要求3所述的方法,其特征在于,所述第一同步源服务器在接收到所述目标应用程序发起的所述同步任务请求后,在所述第一同步任务信息所请求同步的文件存在于第二任务清单中的情况下,向所述目标应用程序反馈所请求同步的文件处于同步状态,其中,所述第二任务清单存储在所述第一同步源服务器中,所述第二任务清单用于记录所述第一同步源服务器待执行的同步任务。
6.根据权利要求1所述的方法,其特征在于,在向所述第一同步源服务器发送指示信息之后,所述方法还包括:
在接收到第二同步源服务器发送的第二同步任务信息的情况下,从所述第二同步任务信息中获取存储文件名和存储目录,得到目标存储文件名和目标存储目录,其中,所述存储文件名是待同步文件存储后所使用的文件名,所述存储目录为所述待同步文件的存储至的目录;
并判断所述第一任务清单中是否存在所述第二同步任务信息对应的第二目标同步任务,其中,所述第二目标同步任务是指同步源服务器不是所述第二同步源服务器,但是存储文件名与所述目标存储文件名相同、存储目录与所述目标存储目录相同的同步任务;
在所述第一任务清单中不存在所述第二目标同步任务的情况下,执行在所述第一任务清单中确定存在所述待同步文件的第一目标同步任务的步骤;
在所述第一任务清单中存在所述第二目标同步任务的情况下,向发送所述同步任务信息的第二同步源服务器反馈第三响应信息,其中,所述第三响应信息指示拒绝同步同名文件。
7.根据权利要求1所述的方法,其特征在于,向所述第一同步源服务器发送第一指示信息之后,所述方法还包括:
所述接收端服务器接收所述第一同步源服务器发送的端口开放指令以及进程启动指令,其中,所述第一同步源服务器安装有数据备份工具,用于将文件从所述第一同步源服务器同步至所述接收端服务器,所述接收端服务器安装有备份接收程序,用于接收所述数据备份工具传输的文件;
基于所述端口开放指令开放所述接收端服务器与所述第一同步源服务器之间的通讯端口,基于所述进程启动指令启动所述备份接收程序,并向所述第一同步源服务器发送指令完成响应信息,其中,所述指令完成响应信息用于指示所述端口开放指令以及所述进程启动指令均执行完毕;
通过所述备份接收程序接收所述数据备份工具发送的所述待同步文件,并在检测到所述第一同步源服务器发送的端口关闭指令和进程关闭指令的情况下,关闭所述数据备份工具的通讯端口,并关闭所述备份接收程序。
8.根据权利要求7所述的方法,其特征在于,通过所述备份接收程序接收所述数据备份工具发送的所述待同步文件包括:
接收所述第一同步源服务器发送的同步结果检查指令,并计算接收到的所述待同步文件的校验码;
获取所述第一任务清单中记录的所述待同步文件的校验码,将计算得到的校验码与记录的校验码进行比较;
在所述计算得到的校验码与所述记录的校验码相同的情况下, 将所述待同步文件存储至所述目的存储路径,并向所述第一同步源服务器发送所述同步结果检查指令的响应信息。
9.一种避免同步过程冲突的文件同步装置,其特征在于,包括:
第一接收单元,用于通过接收端服务器接收第一同步源服务器发送的第一同步任务信息,并判断所述第一同步任务信息所指示的待同步文件是否存在于第一任务清单中,其中,所述第一任务清单存储在所述接收端服务器中,所述第一任务清单用于记录所述接收端服务器待执行的同步任务;
第一获取单元,用于在所述待同步文件存在于所述第一任务清单中的情况下,在所述第一任务清单中确定存在所述待同步文件的第一目标同步任务,获取所述第一目标同步任务的同步源服务器地址和目的存储路径,并判断所述待同步文件的同步源服务器地址和所述第一目标同步任务的同步源服务器地址是否相同;
删除单元,用于在所述待同步文件的同步源服务器地址和所述第一目标同步任务的同步源服务器地址相同的情况下,确定所述第一目标同步任务先前因为某些原因中断或出错,删除在执行所述第一目标同步任务的过程中已同步至所述接收端服务器的文件,并向所述第一同步源服务器发送第一指示信息,其中,所述第一指示信息指示重新同步所述待同步文件;
更新单元,用于在所述待同步文件的同步源服务器地址和所述第一目标同步任务的同步源服务器地址不同的情况下,确定所述第一同步任务信息对应的同步请求是来自于不同的同步源服务器发起的同步请求,根据所述待同步文件的同步源服务器地址和目的存储路径更新所述第一目标同步任务的同步源服务器地址和目的存储路径,并向所述第一同步源服务器发送第二指示信息,其中,所述第二指示信息指示所述待同步文件处于同步状态;
其中,所述更新单元包括:
第二判断模块,用于在所述待同步文件的同步源服务器地址和所述第一目标同步任务的同步源服务器地址不同的情况下,判断所述待同步文件的目的存储路径和所述第一目标同步任务的目的存储地址是否相同;
第一添加模块,用于在所述待同步文件的目的存储路径和所述第一目标同步任务的目的存储地址相同的情况下,将所述待同步文件的同步源服务器地址增加至所述第一目标同步任务中;
第二添加模块,用于在所述待同步文件的目的存储路径和所述第一目标同步任务的目的存储地址不同的情况下,将所述待同步文件的同步源服务器地址和目的存储路径均增加至所述第一目标同步任务中。
CN202210912394.2A 2022-07-29 2022-07-29 避免同步过程冲突的文件同步方法和装置 Active CN115277681B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210912394.2A CN115277681B (zh) 2022-07-29 2022-07-29 避免同步过程冲突的文件同步方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210912394.2A CN115277681B (zh) 2022-07-29 2022-07-29 避免同步过程冲突的文件同步方法和装置

Publications (2)

Publication Number Publication Date
CN115277681A CN115277681A (zh) 2022-11-01
CN115277681B true CN115277681B (zh) 2024-04-02

Family

ID=83746396

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210912394.2A Active CN115277681B (zh) 2022-07-29 2022-07-29 避免同步过程冲突的文件同步方法和装置

Country Status (1)

Country Link
CN (1) CN115277681B (zh)

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104917819A (zh) * 2015-04-29 2015-09-16 努比亚技术有限公司 一种实现数据同步的方法及系统
CN107741950A (zh) * 2017-09-05 2018-02-27 北京趣拿软件科技有限公司 数据同步任务的处理方法、装置、处理器及服务端
US10437682B1 (en) * 2015-09-29 2019-10-08 EMC IP Holding Company LLC Efficient resource utilization for cross-site deduplication
KR102101591B1 (ko) * 2020-03-03 2020-04-16 정일형 Ai 기반 백업 데이터 관리 시스템 및 그 방법
CN111638920A (zh) * 2020-05-29 2020-09-08 中国工商银行股份有限公司 计算机程序同步任务处理方法、装置、电子设备和介质
CN113868228A (zh) * 2021-09-29 2021-12-31 北京沃东天骏信息技术有限公司 一种数据同步方法、装置、设备及计算机可读存储介质
CN114003659A (zh) * 2021-11-05 2022-02-01 中国工商银行股份有限公司 数据同步方法、装置、电子设备、存储介质及程序产品
CN114020850A (zh) * 2022-01-05 2022-02-08 深圳市明源云科技有限公司 数据库数据同步方法、装置、设备及可读存储介质
CN114254030A (zh) * 2021-12-21 2022-03-29 平安证券股份有限公司 一种数据同步方法、系统、终端设备及存储介质

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103916423A (zh) * 2012-12-31 2014-07-09 华为技术有限公司 数据同步方法及设备
US10649858B2 (en) * 2015-10-22 2020-05-12 Softnas, Llc. Synchronization storage solution after an offline event
US20170322794A1 (en) * 2016-05-09 2017-11-09 Sharp Laboratories Of America, Inc. System and Method for Data Validation between Synced Devices
CN112748991A (zh) * 2019-10-30 2021-05-04 伊姆西Ip控股有限责任公司 用于备份数据的方法、设备和计算机程序产品

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104917819A (zh) * 2015-04-29 2015-09-16 努比亚技术有限公司 一种实现数据同步的方法及系统
US10437682B1 (en) * 2015-09-29 2019-10-08 EMC IP Holding Company LLC Efficient resource utilization for cross-site deduplication
CN107741950A (zh) * 2017-09-05 2018-02-27 北京趣拿软件科技有限公司 数据同步任务的处理方法、装置、处理器及服务端
KR102101591B1 (ko) * 2020-03-03 2020-04-16 정일형 Ai 기반 백업 데이터 관리 시스템 및 그 방법
CN111638920A (zh) * 2020-05-29 2020-09-08 中国工商银行股份有限公司 计算机程序同步任务处理方法、装置、电子设备和介质
CN113868228A (zh) * 2021-09-29 2021-12-31 北京沃东天骏信息技术有限公司 一种数据同步方法、装置、设备及计算机可读存储介质
CN114003659A (zh) * 2021-11-05 2022-02-01 中国工商银行股份有限公司 数据同步方法、装置、电子设备、存储介质及程序产品
CN114254030A (zh) * 2021-12-21 2022-03-29 平安证券股份有限公司 一种数据同步方法、系统、终端设备及存储介质
CN114020850A (zh) * 2022-01-05 2022-02-08 深圳市明源云科技有限公司 数据库数据同步方法、装置、设备及可读存储介质

Also Published As

Publication number Publication date
CN115277681A (zh) 2022-11-01

Similar Documents

Publication Publication Date Title
US10895996B2 (en) Data synchronization method, system, and apparatus using a work log for synchronizing data greater than a threshold value
JP6684367B2 (ja) データ処理方法及びデバイス
CN109491776B (zh) 任务编排方法和系统
CN104486319B (zh) 适用于高可用系统的配置文件实时同步方法及其系统
US7571268B2 (en) Consistent updates across storage subsystems coupled to a plurality of primary and secondary units at selected times
US20150019491A1 (en) Replication of Data Between Mirrored Data Sites
US20110225382A1 (en) Incremental replication using snapshots
US9639290B2 (en) Substitution of a target volume of a secondary storage controller for a source volume of a primary storage controller for executing a write operation
EP2542976B1 (en) Method and apparatus of backing-up subversion repository
CN112749123A (zh) 用于管理文件系统的方法、设备和计算机程序产品
CN115277681B (zh) 避免同步过程冲突的文件同步方法和装置
CN107528703B (zh) 一种用于管理分布式系统中节点设备的方法与设备
JP2009251756A (ja) クライアント装置、分散ファイルシステム、共有リソース多重化方法およびプログラム
WO2022227719A1 (zh) 数据备份方法、系统及相关设备
CN115277679B (zh) 文件同步方法和系统
CN114281600A (zh) 一种容灾备份和容灾恢复方法、装置、设备及存储介质
CN115277680B (zh) 用于提高同步安全性的文件同步方法
US11108730B2 (en) Group heartbeat information in a domain name system server text record
KR101748912B1 (ko) 분산 저장 환경에서 데이터 저장 시스템 및 데이터 저장 시스템이 포함하는 클러스터의 업그레이드, 확장 및 축소를 위한 클러스터 관리 방법
CN111142921A (zh) 软件升级方法及装置
TWI788085B (zh) 同步管理伺服器、同步管理系統及同步管理方法
JP5130538B2 (ja) ネットワークファイルシステムおよびネットワークファイルシステム復旧方法
JP2004127004A (ja) 共有ファイル同期方法、そのシステム、コンピュータ、プログラム及び該プログラムを記録した媒体
CN117063160A (zh) 用于共享内存访问的内存控制器和用于内存控制器之中的方法
CN112131045A (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
GR01 Patent grant
GR01 Patent grant