文件同步方法、装置、计算机装置及存储介质与流程

文档序号:15636941发布日期:2018-10-12 21:35阅读:139来源:国知局

本发明涉及通信技术领域,尤其涉及一种文件同步方法、装置、计算机装置及存储介质。



背景技术:

随着计算机技术的发展,存储(如硬盘、移动存储设备等)的容量越来越大。在存储中,可以存放各种类型的文件,例如,文本、图片、视音频等各种类型的文件。然而,当存储容量不够时,可能需要将存储内容进行迁移,此时,通常需要将存储中大批量的文件进行同步。

现有技术中,在进行大批量文件同步时,通常由图形化工具来完成。然而通过图形化工具进行操作时,需要有人值守,耗时耗力,而大批量文件由于数量多且大小较大通常会花费大量的时间,同步效率也不够高。



技术实现要素:

鉴于以上内容,有必要提供一种文件同步方法、装置、计算机装置及存储介质,使得当大批量文件传输时无需有人值守,并且能够提高大批量文件同步的效率以及文件同步时的可靠性。

本发明提供一种文件同步方法,所述方法包括:

获取待同步文件夹,对所述待同步文件夹包含的文件信息进行统计,得到第一文件清单;

获取所述待同步文件夹同步前存放地址与同步后存放地址;

通过rsync指令将所述待同步文件夹包含的文件从所述同步前存放地址同步到所述同步后存放地址;

获取同步后文件夹,统计所述同步后文件夹包含的文件信息,得到第二文件清单;

将所述第一文件清单与所述第二文件清单进行匹配,确定是否完成文件同步。

在本发明优选实施中,所述获取待同步文件夹包括:

获取存储中包含的根目录文件夹;

获取所述根目录文件夹的修改时间;

确定修改时间在预设时间之后的根目录文件夹为待同步文件夹。

在本发明优选实施中,所述获取待同步文件夹包括:

获取存储中包含的根目录文件夹;

获取所述根目录文件夹的访问频率;

确定访问频率大于预设访问频率的根目录文件夹为待同步文件夹。

在本发明优选实施中,所述方法还包括:

获取所述同步后存放地址之后,判断所述同步后存放地址所属存储空间的容量大小是否满足预设容量条件;

若是,执行所述通过rsync指令将所述待同步文件夹包含的文件从所述同步前存放地址同步到所述同步后存放地址的操作。

在本发明优选实施中,所述方法还包括:

若同步时发生异常,获取异常原因;

若异常原因为网络连接异常,从同步日志中获取所述待同步文件夹中的已同步文件;

确定所述待同步文件夹中所述已同步文件以外的文件为所述待同步文件夹中的未同步文件;

若接收到网络连接正常的通知消息,通过rsync指令将所述待同步文件夹中的未同步文件同步至所述同步后存放地址。

在本发明优选实施例中,所述方法还包括:

若异常原因为存储空间不足,发出提醒信息。

在本发明优选实施例中,所述方法还包括:

在同步过程中,若所述同步后存放地址中包含的第一文件与所述待同步文件夹中包含的第二文件同名,获取所述第一文件的第一修改时间以及所述第二文件的第二修改时间;

若第一修改时间相比第二修改时间更接近当前系统时间,则不将所述第一文件进行覆盖;

若第二修改时间相比第一修改时间更接近当前系统时间,则将所述第一文件进行覆盖。

本发明还提供一种文件同步装置,所述装置包括:

第一获取模块,用于获取待同步文件夹,对所述待同步文件夹包含的文件信息进行统计,得到第一文件清单;

所述第一获取模块,还用于获取所述待同步文件夹同步前存放地址与同步后存放地址;

同步模块,用于通过rsync指令将所述待同步文件夹包含的文件从所述同步前存放地址同步到所述同步后存放地址;

统计模块,用于获取同步后文件夹,统计所述同步后文件夹包含的文件信息,得到第二文件清单;

匹配模块,用于将所述第一文件清单与所述第二文件清单进行匹配,确定是否完成文件同步。

在本发明优选实施例中,所述第一获取模块获取待同步文件夹包括:

获取存储中包含的根目录文件夹;

获取所述根目录文件夹的修改时间;

确定修改时间在预设时间之后的根目录文件夹为待同步文件夹。

在本发明优选实施例中,所述第一获取模块获取待同步文件夹包括:

获取存储中包含的根目录文件夹;

获取所述根目录文件夹的访问频率;

确定访问频率大于预设访问频率的根目录文件夹为待同步文件夹。

在本发明优选实施例中,所述装置还包括:

判断模块,用于获取所述同步后存放地址之后,判断所述同步后存放地址所属存储空间的容量大小是否满足预设容量条件;

触发模块,用于若同步后存放地址所属存储空间的容量大小满足预设容量条件,触发所述同步模块通过rsync指令将所述待同步文件夹包含的文件从所述同步前存放地址同步到所述同步后存放地址。

在本发明优选实施例中,所述装置还包括异常处理模块,用于:

若同步时发生异常,获取异常原因;

若异常原因为网络连接异常,从同步日志中获取所述待同步文件夹中的已同步文件;

确定所述待同步文件夹中所述已同步文件以外的文件为所述待同步文件夹中的未同步文件;

若接收到网络连接正常的通知消息,通过rsync指令将所述待同步文件夹中的未同步文件同步至所述同步后存放地址。

在本发明优选实施例中,所述异常处理模块还用于:

若异常原因为存储空间不足,发出提醒信息。

在本发明优选实施例中,所述装置还包括:

第二获取模块,用于在同步过程中,若所述同步后存放地址中包含的第一文件与所述待同步文件夹中包含的第二文件同名,获取所述第一文件的第一修改时间以及所述第二文件的第二修改时间;

处理模块,用于若第一修改时间相比第二修改时间更接近当前系统时间,则不将所述第一文件进行覆盖;若第二修改时间相比第一修改时间更接近当前系统时间,则将所述第一文件进行覆盖。

本发明还提供一种计算机装置,所述计算机装置包括存储器及处理器,所述存储器用于存储至少一个指令,所述处理器用于执行所述至少一个指令以实现任意实施例中所述的文件同步方法。

本发明还提供一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有至少一个指令,所述至少一个指令被处理器执行时实现任意实施例中所述的文件同步方法。

由以上技术方案看出,本发明通过获取待同步文件夹,对所述待同步文件夹包含的文件信息进行统计,得到第一文件清单;获取所述待同步文件夹同步前存放地址与同步后存放地址;通过rsync指令将所述待同步文件夹包含的文件从所述同步前存放地址同步到所述同步后存放地址;获取同步后文件夹,统计所述同步后文件夹包含的文件信息,得到第二文件清单;将所述第一文件清单与所述第二文件清单进行匹配,确定是否完成文件同步。由于通过rsync指令进行数据同步,并且同步之后将待同步文件夹同步前的第一清单与待同步文件夹同步后的第二清单进行匹配,从而可以获取文件同步的情况,来判断是否同步成功。因此当大批量文件传输时无需有人值守,也无需人力去一一检查同步结果,实现了提高大批量文件同步的效率以及文件同步时的可靠性的目的。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1是本发明实施例提供的一种文件同步方法的流程图;

图2是本发明实施例提供的文件同步装置的功能模块图;

图3是本发明实现文件同步方法的较佳实施例的计算机装置的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。

如图1所示,图1为本发明实施例提供的一种文件同步方法的流程图。根据不同的需求,该流程图中步骤的顺序可以改变,某些步骤可以省略。

s10,获取待同步文件夹,对所述待同步文件夹包含的文件信息进行统计,得到第一文件清单。

本发明所述的文件同步方法不仅可以用于大批量文件传输,同样的,也可以用于非大批量的文件同步,即可以应用于任何进行文件同步的场景中。

其中,上述待同步文件夹是要进行同步的文件夹,在计算机系统中文件夹用于存放文件,一个文件夹内可以包括若干文件。

在本实施例中,获取到的待同步文件夹的数量可以是一个或者是多个,待同步文件夹中文件的数量可以是一个或多个。

上述对待同步文件夹包含的文件信息进行统计具体包括,但不限于以下一种或者多种:对待同步文件夹包含的文件的数量、文件的名称、文件的类型、每个文件的修改时间等一项或多项信息进行统计。

可选的,在本发明另一实施例中,所述获取待同步文件夹可包括:

(1)获取存储中包含的根目录文件夹。

(2)获取所述根目录文件夹的修改时间。

(3)确定修改时间在预设时间之后的根目录文件夹为待同步文件夹。

其中,上述存储可以是指待同步文件夹所存放的存储介质,例如某一硬盘。上述存储也可以是存储介质中的一块可以存放数据的存储空间。

根目录文件夹是指根目录下的文件夹。根目录是指逻辑驱动器的最上一级目录。例如,存储分为m区和n区,则对于m:\user1\data来说,m:\是根目录,文件夹user1为根目录下的文件夹,即文件夹user1为根目录文件夹,data为子目录文件夹,也可称为子文件夹。

上述预设时间可以根据需要设定,例如预设时间为当月1号,则确定在1号之后修改的根目录文件夹为待同步文件夹,从而可以将一个月内修改过的文件夹筛选出来,进而进行同步。

通过上述步骤,可以获取一段时间内修改过的根目录文件夹进行同步,当仅需要同步修改过的文件夹时,可以快速定位进而同步,无需人工手动查找,进而提高文件同步的效率。

可选的,在本发明另一实施例中,所述获取待同步文件夹又可包括:

(1)获取存储中包含的根目录文件夹。

(2)获取所述根目录文件夹的访问频率。

(3)确定访问频率大于预设访问频率的根目录文件夹为待同步文件夹。

其中,上述预设访问频率可以根据需要设定。例如,预设访问频率为一天20次,或者访问频率为一周100次等。

通过上述步骤,可以快捷的将访问频率较高的文件夹筛选出来,进而进行同步。例如,若要分批进行大批量文件同步时,可以优先将访问频率较高的文件夹进行同步,则访问频率较高的文件可以被优先同步至其他存储中,以方便快速的通过其他存储访问频率较高的文件。

可选的,在本发明另一实施例中,所述获取待同步文件夹还可包括:

(1)获取存储中包含的根目录文件夹。

(2)从根目录文件夹中选择用户指定的根目录文件夹为待同步文件夹。

例如,扫描存储,获取该存储中包含的根目录文件夹并显示,使用户通过输入命令指定要同步的文件夹,以快速的帮助用户定位要同步的文件夹。

通过上述步骤,使得待同步的文件夹为用户指定的文件夹,满足用户文件同步时的个性化需求。

s20,获取所述待同步文件夹同步前存放地址与同步后存放地址。

其中,上述待同步文件夹同步前存放地址可以在获取待同步文件夹时一并获取。上述同步后存放地址是指将待同步文件夹放置的位置。例如,同步后存放地址为b存储中,或者同步后存放地址为b存储的userdata文件目录下。

可选的,在本发明另一实施例中,本发明所述的方法还可包括:

获取所述同步后存放地址之后,判断所述同步后存放地址所属存储空间的容量大小是否满足预设容量条件;若是,执行步骤s30。

其中,容量大小满足预设容量条件可以是容量大小大于待同步文件夹的总大小,或者是容量大小与待同步文件夹的大小之差大于预设容量。具体的,预设容量可以根据需要设定。

例如,同步后存放地址为b存储,则同步后存储地址所属存储空间的容量大小为b存储的容量大小。或者,同步后存放地址为b存储的userdata文件目录,则同步后存储地址所属存储空间的容量大小同样为b存储的容量大小。当b存储的容量大小大于待同步文件夹的总大小时,才执行步骤s30,即才执行进行后续同步文件的操作。

通过本实施例,可以避免文件同步后的因磁盘空间不足出现异常,增加文件同步的成功率。

可选的,在本发明另一实施例中,本发明所述的方法还可包括:

获取所述同步后存放地址之后,判断所述同步后存放地址是否为预设存放地址;若是,执行步骤s30。

上述预设存放地址可以为预先设定的存放地址。

在本实施例中,在进行文件同步时,不会将文件同步至预设范围之外的文件夹中,保证了文件同步时的安全性。

s30,通过rsync指令将所述待同步文件夹包含的文件从所述同步前存放地址同步到所述同步后存放地址。

其中,上述rsync指令可以实现远程数据同步,rsync的详细说明可以从现有技术中获取,此处不再赘述。

具体的,rsync可以进行增量同步或者是进行全量同步。即,将待同步文件夹中的所有文件进行同步,或者是将待同步文件夹中的增量文件进行同步。

由于rsync指令具有快速的进行文件传输的特点,因此,在本实施例中,采用rsync指令进行文件同步,提高了文件同步的速度,实现了快速文件同步的目的。当应用在大批量文件传输的情况下时,相比使用其他的指令进行传输,可以极大的节省传输时间。

可选的,在本发明其他实施例中,还可以在执行步骤s30之前,先对待同步文件夹进行加密,或者是将待同步文件夹中包含的文件进行加密,再通过rsync指令将文件进行同步,以提高文件同步过程中的安全性。

s40,获取同步后文件夹,统计所述同步后文件夹包含的文件信息,得到第二文件清单。

其中,上述同步后文件夹即为待同步文件夹同步后的文件夹。

上述对同步后文件夹包含的文件信息进行统计具体可包括但不限于:对同步后文件夹包含的文件的数量、文件的名称、文件的类型、每个文件的修改时间等一项或多项信息进行统计。

在具体实施时,在同步前对文件夹包含的内容统计了哪些信息,在同步后也可以进行同样的信息统计。

例如,第一文件清单包含文件的名称和文件的数量,则在获取同步后文件夹之后,统计同步后文件夹包含的文件的名称以及文件的数量,即第二文件清单中包含同步后文件夹中包含的文件的名称和文件的数量。

s50,将所述第一文件清单与所述第二文件清单进行匹配,确定是否完成文件同步。

其中,将第一文件清单与第二文件清单进行匹配用于确定同步前待同步文件夹中包含的文件与同步后待同步文件夹中包含的文件是否一致,若一致,确定完成文件同步。

若第一文件清单与第二文件清单包含的文件名称全部一致,但有少数文件大小不同,也可以确定文件同步完成。同时,可以将第一文件清单中与第二文件清单之中文件名称相同,文件大小不同的文件显示出来。由于此时,已经完成了大部分的文件传输,仅部分文件的大小可能不同,因此可以通知显示的方式让用户知晓哪些文件没有完全同步,以使用户查看是否需要再次将第一文件清单中与第二文件清单之中文件名称相同,文件大小不同的文件进行同步。

具体的,在将第一文件清单与第二文件清单进行匹配时,可以将文件清单中的每一项逐一进行匹配。

例如,将第一文件清单包含的文件名称与第二文件清单包含的文件名称进行匹配,以确定文件的名称是否一致。同时,将第一文件清单包含的文件的数量与第二文件的数量进行匹配,以确定文件的数量是否一致。若一致,确定完成文件同步。

又比如,将第一文件清单中的文件总大小与文件总数量与第二文件清单中的文件总大小与文件总数量进行匹配,若一致,将第一文件清单中的文件名称、文件大小、文件创建时间与第二文件清单中的文件名称、文件大小、文件创建时间进行匹配,若一致,确定文件同步完成。

在本实施例中,通过对同步后的第二文件清单与同步前的第一文件清单进行匹配,可以更加精确的定位文件同步是否全部完成,而不需要用户一一去检查文件是否同步完成,可以节省用户的时间。特别是当大批量文件进行传输时,由于文件传输的数量较多,通过本发明所述的方法进行文件同步,可以极大降低人工复核的时间,并且及时定位同步不完全的文件,有利于对文件同步的效果进行及时的反馈。

同时,在本发明其他实施例中,在文件同步过程中,若有文件同名,可通过以下步骤进行处理:

(1)在同步过程中,若所述同步后存放地址中包含的第一文件与所述待同步文件夹中包含的第二文件同名,获取所述第一文件的第一修改时间以及所述第二文件的第二修改时间。

(2)若第一修改时间相比第二修改时间更接近当前系统时间,则不将所述第一文件进行覆盖。

(3)若第二修改时间相比第一修改时间更接近当前系统时间,则将所述第一文件进行覆盖。

通常,每个文件有其创建时间,若对文件进行了修改,则文件有其修改时间,修改时间属于文件的属性信息中的一项。

若文件进行了修改,文件的修改时间随之变化,同时文件的内容可能进行了更新。因此,在本实施例中,若在文件同步过程中,遇到文件同名的情况,可以通过文件的修改时间来确定是否将文件进行覆盖。使得在同步过程中,最新的文件不会被旧的文件覆盖掉。

同时,在其他实施例中,也可以判断第一文件的文件类型是否为指定类型。

若第一文件的文件类型不为指定的文件类型时,且第一修改时间相比第二修改时间更接近当前系统时间,进行文件覆盖。若第一文件的文件类型为指定的文件类型时,无论第一修改时间相比第二修改时间是否更接近当前系统时间,都不将所述第一文件进行覆盖。

通过以上实施方式,使得在某一类文件即时在同名的情况下,也可以快速的同步,无需进行提醒。

同时,在具体实施时,无论在覆盖或者是未覆盖同名文件,可将同步文件的日志进行输出并标记,以使用户快速的了解未完全同步的文件,进而再次触发同步指令进行文件同步,节省文件同步所花费的时间。

在本发明其他实施例中,在文件同步过程中,若出现异常,可通过以下步骤进行处理:

(1)若同步时发生异常,获取异常原因;

(2)若异常原因为网络连接异常,从同步日志中获取所述待同步文件夹中的已同步文件;

(3)确定所述待同步文件夹中所述已同步文件以外的文件为所述待同步文件夹中的未同步文件;

(4)若接收到网络连接正常的通知消息,通过rsync指令将所述待同步文件夹中的未同步文件同步至所述同步后存放地址。

在具体实施时,可以通过捕获异常的函数来获取传出过程中出现的异常原因。

上述同步日志是将文件同步过程进行记录的日志信息。例如,在同步过程中可以将已传输文件的名称记录,则从该同步日志中可以获取待同步文件夹中的已同步文件。

同时,同步日志还可以将文件同步过程中的所有同步文件的相关信息进行打印,使得相关工作人员可以方便的了解文件同步过程中的异常以及知晓同步结果。

例如,若待同步文件夹中共计包括二十六个文件,其中同步日志中记录的已同步文件为a、b、c三个文件,则确定待同步文件夹中二十六个文件之中除了a、b、c三个文件以外的文件为未同步文件。

当网络连接异常时候时,可以每间隔一段时间主动连接同步后存放地址所属的存储,当连接成功反馈消息时,可以确定为接收到网络连接正常的通知消息。此时,通过rsync指令将待同步文件夹中的未同步文件同步至同步后存放地址。

在本实施例中,加入异常的处理,提高了异常出现时的容错处理能力,进一步提升了文件传输成功的可靠性。

进一步地,在本发明其他实施例中,若异常原因为存储空间不足,发出提醒信息。

在进行提醒时,可以通过弹出提示框的方式向相关工作人员进行提醒。

通过本发明实施例,可以在文件同步发生异常,并且该异常无法通过再次主动传输完成文件同步的情况下及时的提醒相关工作人员进行提醒,以使文件同步过程中的问题能及时发现及时解决,缩短完成文件同步的时间。

本发明提供的文件同步方法获取待同步文件夹,对所述待同步文件夹包含的文件信息进行统计,得到第一文件清单;获取所述待同步文件夹同步前存放地址与同步后存放地址;通过rsync指令将所述待同步文件夹包含的文件从所述同步前存放地址同步到所述同步后存放地址;获取同步后文件夹,统计所述同步后文件夹包含的文件信息,得到第二文件清单;将所述第一文件清单与所述第二文件清单进行匹配,确定是否完成文件同步。由于通过rsync指令进行数据同步,并且同步之后将待同步文件夹同步前的第一清单与待同步文件夹同步后的第二清单进行匹配,从而可以获取文件同步的情况,来判断是否同步成功。因此当大批量文件传输时无需有人值守,也无需人力去一一检查同步结果,实现了提高大批量文件同步的效率以及文件同步时的可靠性的目的。

如图2所示,图2为本发明实施例提供的文件同步装置的功能模块图。所述文件同步装置包括第一获取模块210、同步模块220、统计模块230和匹配模块240。本发明所称的模块是指一种能够被计算机装置的处理器所执行并且能够完成固定功能的一系列计算机程序段,其存储在计算机装置的存储器中。在本实施例中,关于各模块的功能将在后续的实施例中详述。

第一获取模块210,用于获取待同步文件夹,对所述待同步文件夹包含的文件信息进行统计,得到第一文件清单。

本发明所述的文件同步装置不仅可以用于大批量文件传输,同样的,也可以用于非大批量的文件同步,即可以应用于任何进行文件同步的场景中。

其中,上述待同步文件夹是要进行同步的文件夹,在计算机系统中文件夹用于存放文件,一个文件夹内可以包括若干文件。

在本实施例中,获取到的待同步文件夹的数量可以是一个或者是多个,待同步文件夹中文件的数量可以是一个或多个。

上述对待同步文件夹包含的文件信息进行统计具体包括,但不限于以下一种或者多种:对待同步文件夹包含的文件的数量、文件的名称、文件的类型、每个文件的修改时间等一项或多项信息进行统计。

可选的,在本发明另一实施例中,所述第一获取模块210获取待同步文件夹包括可包括:

(1)获取存储中包含的根目录文件夹。

(2)获取所述根目录文件夹的修改时间。

(3)确定修改时间在预设时间之后的根目录文件夹为待同步文件夹。

其中,上述存储可以是指待同步文件夹所存放的存储介质,例如某一硬盘。上述存储也可以是存储介质中的一块可以存放数据的存储空间。

根目录文件夹是指根目录下的文件夹。根目录是指逻辑驱动器的最上一级目录。例如,存储分为m区和n区,则对于m:\user1\data来说,m:\是根目录,文件夹user1为根目录下的文件夹,即文件夹user1为根目录文件夹,data为子目录文件夹,也可称为子文件夹。

上述预设时间可以根据需要设定,例如预设时间为当月1号,则确定在1号之后修改的根目录文件夹为待同步文件夹,从而可以将一个月内修改过的文件夹筛选出来,进而进行同步。

通过本实施例,可以获取一段时间内修改过的根目录文件夹进行同步,当仅需要同步修改过的文件夹时,可以快速定位进而同步,无需人工手动查找,进而提高文件同步的效率。

可选的,在本发明另一实施例中,所述第一获取模块210获取待同步文件夹可包括:

(1)获取存储中包含的根目录文件夹。

(2)获取所述根目录文件夹的访问频率。

(3)确定访问频率大于预设访问频率的根目录文件夹为待同步文件。

其中,上述预设访问频率可以根据需要设定。例如,预设访问频率为一天20次,或者访问频率为一周100次等。

通过本实施例,可以快捷的将访问频率较高的文件夹筛选出来,进而进行同步。例如,若要分批进行大批量文件同步时,可以优先将访问频率较高的文件夹进行同步,则访问频率较高的文件可以被优先同步至其他存储中,以方便快速的通过其他存储访问频率较高的文件。

可选的,在本发明另一实施例中,所述第一获取模块210获取待同步文件夹包括还可包括:

(1)获取存储中包含的根目录文件夹。

(2)从根目录文件夹中选择用户指定的根目录文件夹为待同步文件夹。

例如,扫描存储,获取该存储中包含的根目录文件夹并显示,使用户通过输入命令指定要同步的文件夹,以快速的帮助用户定位要同步的文件夹。

通过本实施例,使得待同步的文件夹为用户指定的文件夹,满足用户文件同步时的个性化需求。

第一获取模块210,还用于获取所述待同步文件夹同步前存放地址与同步后存放地址。

其中,上述待同步文件夹同步前存放地址可以在获取待同步文件夹时一并获取。上述同步后存放地址是指将待同步文件夹放置的位置。例如,同步后存放地址为b存储中,或者同步后存放地址为b存储的userdata文件目录下。

可选的,在本发明另一实施例中,本发明所述的装置还可包括判断模块和触发模块。

判断模块,用于获取所述同步后存放地址之后,判断所述同步后存放地址所属存储空间的容量大小是否满足预设容量条件。

触发模块,用于若同步后存放地址所属存储空间的容量大小满足预设容量条件,触发所述同步模块通过rsync指令将所述待同步文件夹包含的文件从所述同步前存放地址同步到所述同步后存放地址。

其中,容量大小满足预设容量条件可以是容量大小大于待同步文件夹的总大小,或者是容量大小与待同步文件夹的大小之差大于预设容量。具体的,预设容量可以根据需要设定。

例如,同步后存放地址为b存储,则同步后存储地址所属存储空间的容量大小为b存储的容量大小。或者,同步后存放地址为b存储的userdata文件目录,则同步后存储地址所属存储空间的容量大小同样为b存储的容量大小。当b存储的容量大小大于待同步文件夹的总大小时,才触发同步模块进行同步操作。

通过本实施例,可以避免文件同步后的因磁盘空间不足出现异常,增加文件同步的成功率。

可选的,在本发明另一实施例中,所述判断模块,还用于获取所述同步后存放地址之后,判断所述同步后存放地址是否为预设存放地址。

所述触发模块,还用于若所述同步后存放地址为预设存放地址,触发所述同步模块通过rsync指令、所述同步前存放地址、所述同步后存放地址将所述待同步文件夹包含的文件进行同步。

上述预设存放地址可以为预先设定的存放地址。

在本实施例中,在进行文件同步时,不会将文件同步至预设范围之外的文件夹中,保证了文件同步时的安全性。

同步模块220,用于通过rsync指令将所述待同步文件夹包含的文件从所述同步前存放地址同步到所述同步后存放地址。

其中,上述rsync指令可以实现远程数据同步,rsync的详细说明可以从现有技术中获取,此处不再赘述。

具体的,rsync可以进行增量同步或者是进行全量同步。即,将待同步文件夹中的所有文件进行同步,或者是将待同步文件夹中的增量文件进行同步。

由于rsync指令具有快速的进行文件传输的特点,因此,在本实施例中,采用rsync指令进行文件同步,提高了文件同步的速度,实现了快速文件同步的目的。当应用在大批量文件传输的情况下时,相比使用其他的指令进行传输,可以极大的节省传输时间。

可选的,在本发明其他实施例中,还可以在同步模块220执行之前,先对待同步文件夹进行加密,或者是将待同步文件夹中包含的文件进行加密,再通过rsync指令将文件进行同步,以提高文件同步过程中的安全性。

统计模块230,用于获取同步后文件夹,统计所述同步后文件夹包含的文件信息,得到第二文件清单。

其中,上述同步后文件夹即为待同步文件夹同步后的文件夹。

上述对同步后文件夹包含的文件信息进行统计具体可包括但不限于:对同步后文件夹包含的文件的数量、文件的名称、文件的类型、每个文件的修改时间等一项或多项信息进行统计。

在具体实施时,在同步前对文件夹包含的内容统计了哪些信息,在同步后也可以进行同样的信息统计。

例如,第一文件清单包含文件的名称和文件的数量,则在获取同步后文件夹之后,统计同步后文件夹包含的文件的名称以及文件的数量,即第二文件清单中包含同步后文件夹中包含的文件的名称和文件的数量。

匹配模块240,用于将所述第一文件清单与所述第二文件清单进行匹配,确定是否完成文件同步。

其中,将第一文件清单与第二文件清单进行匹配用于确定同步前待同步文件夹中包含的文件与同步后待同步文件夹中包含的文件是否一致,若一致,确定完成文件同步。

若第一文件清单与第二文件清单包含的文件名称全部一致,但有少数文件大小不同,可以确定文件同步完成。同时,可以将第一文件清单中与第二文件清单之中文件名称相同,文件大小不同的文件显示出来。由于此时,已经完成了大部分的文件传输,仅部分文件的大小可能不同,因此可以通知显示的方式让用户知晓哪些文件没有完全同步,以使用户查看是否需要再次将第一文件清单中与第二文件清单之中文件名称相同,文件大小不同的文件进行同步。

具体的,在将第一文件清单与第二文件清单进行匹配时,可以将文件清单中的每一项逐一进行匹配。

例如,将第一文件清单包含的文件名称与第二文件清单包含的文件名称进行匹配,以确定文件的名称是否一致。同时,将第一文件清单包含的文件的数量与第二文件的数量进行匹配,以确定文件的数量是否一致。若一致,确定完成文件同步。

又比如,将第一文件清单中的文件总大小与文件总数量与第二文件清单中的文件总大小与文件总数量进行匹配,若一致,将第一文件清单中的文件名称、文件大小、文件创建时间与第二文件清单中的文件名称、文件大小、文件创建时间进行匹配,若一致,确定文件同步完成。

在本实施例中,通过对同步后的第二文件清单与同步前的第一文件清单进行匹配,可以更加精确的定位文件同步是否全部完成,而不需要用户一一去检查文件是否同步完成,可以节省用户的时间。特别是当大批量文件进行传输时,由于文件传输的数量较多,通过本发明所述的方法进行文件同步,可以极大降低人工复核的时间,并且及时定位同步不完全的文件,有利于对文件同步的效果进行及时的反馈。

同时,在本发明其他实施例中,在文件同步过程中,若有文件同名,可通过第二获取模块和处理模块进行处理:

第二获取模块,用于在同步过程中,若所述同步后存放地址中包含的第一文件与所述待同步文件夹中包含的第二文件同名,获取所述第一文件的第一修改时间以及所述第二文件的第二修改时间。

处理模块,用于若第一修改时间相比第二修改时间更接近当前系统时间,则不将所述第一文件进行覆盖;若第二修改时间相比第一修改时间更接近当前系统时间,则将所述第一文件进行覆盖。

通常,每个文件有其创建时间,若对文件进行了修改,则文件有其修改时间,修改时间属于文件的属性信息中的一项。

若文件进行了修改,文件的修改时间随之变化,同时文件的内容可能进行了更新。因此,在本实施例中,若在文件同步过程中,遇到文件同名的情况,可以通过文件的修改时间来确定是否将文件进行覆盖。使得在同步过程中,最新的文件不会被旧的文件覆盖掉。

同时,在其他实施例中,也可以判断第一文件的文件类型是否为指定类型。

若第一文件的文件类型不为指定的文件类型时,且第一修改时间相比第二修改时间更接近当前系统时间,进行文件覆盖。若第一文件的文件类型为指定的文件类型时,无论第一修改时间相比第二修改时间是否更接近当前系统时间,都不将所述第一文件进行覆盖。

通过以上实施方式,使得在某一类文件即时在同名的情况下,也可以快速的同步,无需进行提醒。

同时,在具体实施时,无论在覆盖或者是未覆盖同名文件,可将同步文件的日志进行输出并标记,以使用户快速的了解未完全同步的文件,进而再次触发同步指令进行文件同步,节省文件同步所花费的时间。

在本发明其他实施例中,在文件同步过程中,若出现异常,可通过异常处理模块进行处理。所述异常处理模块用于:

若同步时发生异常,获取异常原因;

若异常原因为网络连接异常,从同步日志中获取所述待同步文件夹中的已同步文件;

确定所述待同步文件夹中所述已同步文件以外的文件为所述待同步文件夹中的未同步文件;

若接收到网络连接正常的通知消息,通过rsync指令将所述待同步文件夹中的未同步文件同步至所述同步后存放地址。

在具体实施中,可以通过捕获异常的函数来获取传出过程中出现的异常原因。

上述同步日志是将文件同步过程进行记录的日志信息。例如,在同步过程中可以将已传输文件的名称记录,则从该同步日志中可以获取待同步文件夹中的已同步文件。

同时,同步日志还可以将文件同步过程中的所有同步文件的相关信息进行打印,使得相关工作人员可以方便的了解文件同步过程中的异常以及知晓同步结果。

例如,若待同步文件夹中共计包括二十六个文件,其中同步日志中记录的已同步文件为a、b、c三个文件,则确定待同步文件夹中二十六个文件之中除了a、b、c三个文件以外的文件为未同步文件。

当网络连接异常时候时,可以每间隔一段时间主动连接同步后存放地址所属的存储,当连接成功反馈消息时,可以确定为接收到网络连接正常的通知消息。此时,通过rsync指令将待同步文件夹中的未同步文件同步至同步后存放地址。

在本实施例中,加入异常的处理,提高了异常出现时的容错处理能力,进一步提升了文件传输成功的可靠性。

进一步地,在本发明其他实施例中,所述异常处理模块,还用于:若异常原因为存储空间不足,发出提醒信息。

在进行提醒时,可以通过弹出提示框的方式向相关工作人员进行提醒。

通过本发明实施例,可以在文件同步发生异常,并且该异常无法通过再次主动传输完成文件同步的情况下及时的提醒相关工作人员进行提醒,以使文件同步过程中的问题能及时发现及时解决,缩短完成文件同步的时间。

本发明提供的文件同步装置通过第一获取模块获取待同步文件夹,对所述待同步文件夹包含的文件信息进行统计,得到第一文件清单;以及获取所述待同步文件夹同步前存放地址与同步后存放地址;同步模块通过rsync指令将所述待同步文件夹包含的文件从所述同步前存放地址同步到所述同步后存放地址;统计模块获取同步后文件夹,统计所述同步后文件夹包含的文件信息,得到第二文件清单;匹配模块将所述第一文件清单与所述第二文件清单进行匹配,确定是否完成文件同步。由于通过rsync指令进行数据同步,并且同步之后将待同步文件夹同步前的第一清单与待同步文件夹同步后的第二清单进行匹配,从而可以获取文件同步的情况,来判断是否同步成功。因此当大批量文件传输时无需有人值守,也无需人力去一一检查同步结果,实现了提高大批量文件同步的效率以及文件同步时的可靠性的目的。

上述以软件功能模块的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的部分步骤。

如图3所示,图3是本发明实现文件同步方法的较佳实施例的计算机装置的结构示意图。所述计算机装置包括至少一个发送装置31、至少一个存储器32、至少一个处理器33、至少一个接收装置34以及至少一个通信总线。其中,所述通信总线用于实现这些组件之间的连接通信。

所述计算机装置是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(applicationspecificintegratedcircuit,asic)、可编程门阵列(field-programmablegatearray,fpga)、数字处理器(digitalsignalprocessor,dsp)、嵌入式设备等。所述计算机装置还可包括网络设备和/或用户设备。其中,所述网络设备包括但不限于单个网络服务器、多个网络服务器组成的服务器组或基于云计算(cloudcomputing)的由大量主机或网络服务器构成的云,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个超级虚拟计算机。

所述计算机装置可以是,但不限于任何一种可与用户通过键盘、触摸板或声控设备等方式进行人机交互的电子产品,例如,平板电脑、智能手机、个人数字助理(personaldigitalassistant,pda)、智能式穿戴式设备、摄像设备、监控设备等终端。

所述计算机装置所处的网络包括,但不限于互联网、广域网、城域网、局域网、虚拟专用网络(virtualprivatenetwork,vpn)等。

其中,所述接收装置34和所述发送装置31可以是有线发送端口,也可以为无线设备,例如包括天线装置,用于与其他设备进行数据通信。

所述存储器32用于存储程序代码。所述存储器32可以是集成电路中没有实物形式的具有存储功能的电路,如ram(random-accessmemory,随机存取存储器)、fifo(firstinfirstout,先进先出)存储器等。或者,所述存储器32也可以是具有实物形式的存储器,如内存条、tf卡(trans-flashcard)、智能媒体卡(smartmediacard)、安全数字卡(securedigitalcard)、快闪存储器卡(flashcard)等储存设备等等。

所述处理器33可以包括一个或者多个微处理器、数字处理器。所述处理器33可调用存储器32中存储的程序代码以执行相关的功能。例如,图3中所述的各个单元是存储在所述存储器32中的程序代码,并由所述处理器33所执行,以实现一种文件同步方法。所述处理器33又称中央处理器(cpu,centralprocessingunit),是一块超大规模的集成电路,是运算核心(core)和控制核心(controlunit)。

在本发明所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。

所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。

对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附关联图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。系统权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第二等词语用来表示名称,而并不表示任何特定的顺序。

最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。

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