一种Linux服务器下文件备份的方法及装置与流程

文档序号:17773042发布日期:2019-05-28 19:40阅读:176来源:国知局
一种Linux服务器下文件备份的方法及装置与流程

本发明实施例涉及服务器技术领域,尤其涉及一种linux服务器下文件备份的方法及装置。



背景技术:

目前,在多数人使用同一台linux服务器的场景中,开发人员将该服务器用来当做项目的测试环境,服务器上存储有项目代码,当需要做一些测试的时候,开发人员将自己开发好的代码文件上传到服务器,如果服务器上已经存在具有相同文件名称的文件,此时会进行文件覆盖操作,会导致具有相同文件名称的旧文件被覆盖,但是有些开发人员在后期测试过程中,有可能还会用到旧文件中的内容,这就影响到开发人员的测试,对于项目的协作带来了很大的不便。



技术实现要素:

本发明实施例提供一种linux服务器下文件备份的方法及装置,用以实现对旧文件的备份,避免后期需要使用旧文件时无法查询到。

本发明实施例提供的一种linux服务器下文件备份的方法,包括:

在接收到新文件上传指令时,获取新文件的文件名称;所述新文件上传指令包括所述新文件;

根据所述新文件的文件名称,确定用户的可执行程序的目录中是否存在具有相同文件名称的文件;

若存在,则将所述具有相同文件名称的文件确定为待备份文件,根据所述待备份文件和所述用户的备份文件夹中的文件,将所述待备份文件备份至所述用户的备份文件夹中。

上述技术方案中,由于在将文件上传服务器之前,通过判断用户的可执行程序的目录中是否有相同文件名称的文件,来确定是否需要将待备份文件进行文件备份,可以避免出现在上传新文件时将旧文件进行覆盖后,无法查询该旧文件的问题。

可选的,所述根据所述待备份文件和所述用户的备份文件夹中的文件,将所述待备份文件备份至所述用户的备份文件夹中,包括:

将所述待备份文件的内容与所述用户的备份文件夹中的文件的进行内容比对,若内容不一致,则将所述待备份文件备份至所述用户的备份文件夹中。

上述技术方案中,通过比对两个文件中的文件内容,可以快速确定内容是否一致,当内容一致时,无需进行重复备份,只有内容不一致时,才需要进行备份。

可选的,所述将所述待备份文件备份至所述用户的备份文件夹中,包括:

将所述待备份文件移动到所述用户的备份文件夹中,并根据移动的当前时间对所述待备份文件进行重命名。

上述技术方案中,根据移动的当前时间对待备份文件进行重命名,可以解决名称一致的问题。

可选的,在所述获取新文件的文件名称之前,还包括:

在服务器中所述用户的主目录下建立所述用户的备份文件夹。

可选的,在所述将所述待备份文件备份至所述用户的备份文件夹中之后,还包括:

将所述新文件存储至所述用户的可执行程序的目录中。

相应的,本发明实施例还提供了一种linux服务器下文件备份的装置,包括:

获取单元,用于在接收到新文件上传指令时,获取新文件的文件名称;所述新文件上传指令包括所述新文件;

处理单元,用于根据所述新文件的文件名称,确定用户的可执行程序的目录中是否存在具有相同文件名称的文件;若存在,则将所述具有相同文件名称的文件确定为待备份文件,根据所述待备份文件和所述用户的备份文件夹中的文件,将所述待备份文件备份至所述用户的备份文件夹中。

可选的,所述处理单元具体用于:

将所述待备份文件的内容与所述用户的备份文件夹中的文件的进行内容比对,若内容不一致,则将所述待备份文件备份至所述用户的备份文件夹中。

可选的,所述处理单元具体用于:

将所述待备份文件移动到所述用户的备份文件夹中,并根据移动的当前时间对所述待备份文件进行重命名。

可选的,所述处理单元还用于:

在所述获取新文件的文件名称之前,在服务器中所述用户的主目录下建立所述用户的备份文件夹。

可选的,所述处理单元还用于:

在所述将所述待备份文件备份至所述用户的备份文件夹中之后,将所述新文件存储至所述用户的可执行程序的目录中。

相应的,本发明实施例还提供了一种计算设备,包括:

存储器,用于存储程序指令;

处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行上述linux服务器下文件备份的方法。

相应的,本发明实施例还提供了一种计算机可读非易失性存储介质,包括计算机可读指令,当计算机读取并执行所述计算机可读指令时,使得计算机执行上述linux服务器下文件备份的方法。

附图说明

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

图1为本发明实施例提供的一种系统架构的示意图;

图2为本发明实施例提供的一种linux服务器下文件备份的方法的流程示意图;

图3为本发明实施例提供的一种linux服务器下文件备份的方法的流程示意图;

图4为本发明实施例提供的一种脚本文件执行的流程示意图;

图5为本发明实施例提供的一种linux服务器下文件备份的装置的结构示意图。

具体实施方式

为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

图1示例性的示出了本发明实施例所适用的一种系统架构,该系统架构可以为服务器100,包括处理器110、通信接口120和存储器130。该服务器100可以为linux服务器,本发明实施例对此不做限制。

其中,通信接口120用于与客户端进行通信,收发该客户端传输的信息,实现通信。

处理器110是服务器100的控制中心,利用各种接口和路线连接整个服务器100的各个部分,通过运行或执行存储在存储器130内的软件程序/或模块,以及调用存储在存储器130内的数据,执行服务器100的各种功能和处理数据。可选地,处理器110可以包括一个或多个处理单元。

存储器130可用于存储软件程序以及模块,处理器110通过运行存储在存储器130的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器130可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等;存储数据区可存储根据业务处理所创建的数据等。此外,存储器130可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。

需要说明的是,上述图1所示的结构仅是一种示例,本发明实施例对此不做限定。

基于上述描述,图2示例性的示出了本发明实施例提供的一种linux服务器下文件备份的方法的流程,该流程可以由linux服务器下文件备份的装置执行,该装置可以位于如图1所示服务器100内,也可以是该服务器100。

如图2所示,该流程具体包括:

步骤201,在接收到新文件上传指令时,获取新文件的文件名称。

用户在进行开发测试时,需将新文件例如项目代码上传至linux服务器中,用户会发送一个新文件上传指令,新文件上传指令中包括新文件,该新文件是要存储在用户的可执行程序的目录中用于运行的文件,因此,如果用户的可执行程序的目录中有与该新文件具有相同名称的文件时,直接上传新文件就会将该具有相同名称的文件进行覆盖。该用户的可执行程序的目录中相同名称的文件,也就是旧文件。因此,linux服务器在接收到新文件上传指令时,就可以对该旧文件进行备份,该旧文件也就是用户的待备份文件。新文件上传指令中包括新文件,可以直接获取新文件的文件名称,例如,a.txt文件,该文件的文件名称为a。

需要说明的是,在获取新文件的文件名称之前,可以在linux服务器中用户的主目录下建立该用户的备份文件夹。每个用户都对应一个备份文件夹,例如备份文件夹的名称为bak_dir,完整创建目录可以为:/home/bak_dir,或者/home/usr/bak_dir。

步骤202,根据所述新文件的文件名称,确定用户的可执行程序的目录中是否存在具有相同文件名称的文件。

当得到新文件的文件名称之后,就可以根据该文件名称判断在该用户的可执行程序的目录中是否存在具有相同文件名称的文件。此时可以通过cd/usr/local/bin命令进入到用户的可执行程序的目录中,对比用户的可执行程序的目录中是否存在具有相同文件名称的文件,如果有相同文件名称的文件,就表明存在相同文件名称的文件;如果没有相同文件名称的文件,则就表明不存在相同文件名称的文件,可以停止执行文件备份操作。

步骤203,若存在具有相同文件名称的文件,则将所述具有相同文件名称的文件确定为待备份文件,根据所述待备份文件和所述用户的备份文件夹中的文件,将待备份文件备份至用户的备份文件夹中。

当用户的可执行程序的目录中存在具有相同文件名称的文件时,就可以将这个具有相同文件名称的文件作为待备份文件,然后将该待备份文件的内容与用户的备份文件夹中的文件的进行内容比对,若内容不一致,则将待备份文件备份至用户的备份文件夹中。

例如,可以通过diff命令将a.txt文件的内容与备份文件夹底下的文件进行内容比对,如果已经存在内容一样的文件,则不进行备份并提示已存在内容一样的文件。

如果内容不一致,则就可以将该待备份文件移动到该用户的备份文件夹中,并根据移动的当前时间对待备份文件进行重命名。通过根据移动的当前时间对待备份文件的进行重命名,可以避免将具体相同文件名称的文件覆盖,同时还可以根据重命名后的文件名称获取待备份文件文移动的时间。

例如,可以使用移动命令mva.txt/home/bak_dir来移动待备份文件,使用date命令获取当前时间,如:date+"%y%m%d%h%m%s",获取到的时间为20181218192610。通过mv命令对备份文件进行重命名,在文件名后面加上当前时间(精确到秒),如mva.txta.txt_20181218192610。

当备份操作完成之后,就可以将新文件存储至用户的可执行程序的目录中,覆盖待备份文件,执行新文件的上传操作。当然,这里新文件也可能不会覆盖待备份文件,因为待备份文件在备份至用户的备份文件夹中时,是通过移动指令移走的,此时,用户的可执行程序的目录就没有该待备份文件了,新文件直接存储在用户的可执行程序的目录中即可。

需要说明的是,上述文件备份的流程在具体实施时,可以通过脚本文件来实现。

为了更好的解释本发明实施例,下面将在具体的实施场景下来描述文件备份的流程。

如图3所示的linux服务器下快速备份文件总体流程,具体包括:

步骤301,在linux服务器底下创建一个备份文件夹。

文件夹名如bak_dir,完整目录如:/home/bak_dir。

步骤302,用cd/usr/local/bin命令进入到用户放置自己可执行程序的目录。

步骤303,在/usr/local/bin目录下创建一个脚本文件。

脚本文件的名称可以如backup_code.sh。

步骤304,将快速备份文件的shell脚本逻辑写入到脚本中。

步骤305,在linux服务器上执行backup_code.sha.txt命令去执行该脚本。

其中,该backup_code.sh脚本文件可以执行的流程如图4所示,具体包括:

步骤401,获取要备份的文件名。

要备份的文件名如a.txt。

步骤402,判断a.txt文件是否存在于可执行文件的目录中,若是,则转入步骤403,若否,则转入步骤409。

步骤403,通过diff命令将a.txt文件与备份文件夹底下的文件进行内容比对。

如果已经存在内容一样的文件,则不进行备份并提示已存在内容一样的文件,结束运行脚本文件。

步骤404,判断备份文件夹下是否存在与a.txt文件内容完全一致的文件,若是,则转入步骤409,若否,则转入步骤405。

步骤405,mv命令将a.txt文件移动到备份文件夹底下。

如mva.txt/home/bak_dir。

步骤406,date命令获取当前时间。

如:date+"%y%m%d%h%m%s",获取到的时间为20181218192610。

步骤407,通过mv命令对移动到bak_dir的a.txt文件进行重命名。

如:mva.txta.txt_20181218192610。

步骤408,提示已将文件备份到备份文件夹下。

步骤409,结束。

步骤306,上传新文件到linux服务器。

需要说明的是,当执行backup_code.sha.txt命令时,backup_code.sh脚本中可以通过$1获取到a.txt,这里的1表示这个命令的第一个参数,如果该命令为backup_code.sha.txtb.txt,则$1表示第一个参数a.txt,$2表示第二个参数b.txt。linux服务器上diff命令可以比对两个文件的内容差,如文件a.txt内容包括:文件1,文件2.txt内容包括:文件2,那执行diff1.txt2.txt命令可以得到两个文件的区别。

获取当前时间命令date,date+"%y%m%d%h%m%s"后面的参数表示时间的格式,20181218192610表示2018年12月18日19点26分10秒。

linux的mv命令,mv命令用来为文件或目录改名、或将文件或目录移入其它位置:

a、当mv的两个参数表示的文件是在同一个目录下,表示重命名,如mva.txt/home/bak_dir,a.txt跟/home/bak_dir表示不同文件跟文件夹,所以这里表示把a.txt移动到/home/bak_dir文件夹底下。

b、当mv的两个参数表示的文件不是在同一个目录下,则表示移动,如mva.txta.txt_20181218192610,a.txt跟a.txt_20181218192610表示在同一个文件夹底下,所以这里是把a.txt文件重命名为a.txt_20181218192610。

上述实施例表明,在接收到新文件上传指令时,获取新文件的文件名称,根据新文件的文件名称,确定用户的可执行程序的目录中是否存在具有相同文件名称的文件,若存在,则将具有相同文件名称的文件确定为待备份文件,根据待备份文件和用户的备份文件夹中的文件,将待备份文件备份至所述用户的备份文件夹中。由于在将文件上传服务器之前,通过判断用户的可执行程序的目录中是否有相同文件名称的文件,来确定是否需要将待备份文件进行文件备份,可以避免出现在上传新文件时将旧文件进行覆盖后,无法查询该旧文件的问题。

基于相同的技术构思,图5示例性的示出了本发明实施例提供的一种linux服务器下文件备份的装置的结构,该装置可以执行linux服务器下文件备份的流程,该装置可以位于图1所示的服务器100内,也可以是该服务器100。

如图5所示,该装置具体包括:

获取单元501,用于在接收到新文件上传指令时,获取新文件的文件名称;所述新文件上传指令包括所述新文件;

处理单元502,用于根据所述新文件的文件名称,确定用户的可执行程序的目录中是否存在具有相同文件名称的文件;若存在,则将所述具有相同文件名称的文件确定为待备份文件,根据所述待备份文件和所述用户的备份文件夹中的文件,将所述待备份文件备份至所述用户的备份文件夹中。

可选的,所述处理单元502具体用于:

将所述待备份文件的内容与所述用户的备份文件夹中的文件的进行内容比对,若内容不一致,则将所述待备份文件备份至所述用户的备份文件夹中。

可选的,所述处理单元502具体用于:

将所述待备份文件移动到所述用户的备份文件夹中,并根据移动的当前时间对所述待备份文件进行重命名。

可选的,所述处理单元502还用于:

在所述获取新文件的文件名称之前,在服务器中所述用户的主目录下建立所述用户的备份文件夹。

可选的,所述处理单元502还用于:

在所述将所述待备份文件备份至所述用户的备份文件夹中之后,将所述新文件存储至所述用户的可执行程序的目录中。

基于相同的技术构思,本发明实施例还提供了一种计算设备,包括:

存储器,用于存储程序指令;

处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行上述linux服务器下文件备份的方法。

基于相同的技术构思,本发明实施例还提供了一种计算机可读非易失性存储介质,包括计算机可读指令,当计算机读取并执行所述计算机可读指令时,使得计算机执行上述linux服务器下文件备份的方法。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

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