CN110673985B - 一种自动备份版本库的方法、存储介质及服务器 - Google Patents

一种自动备份版本库的方法、存储介质及服务器 Download PDF

Info

Publication number
CN110673985B
CN110673985B CN201910894867.9A CN201910894867A CN110673985B CN 110673985 B CN110673985 B CN 110673985B CN 201910894867 A CN201910894867 A CN 201910894867A CN 110673985 B CN110673985 B CN 110673985B
Authority
CN
China
Prior art keywords
backup
server
codes
version
code
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
CN201910894867.9A
Other languages
English (en)
Other versions
CN110673985A (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.)
Shenzhen Skyworth RGB Electronics Co Ltd
Original Assignee
Shenzhen Skyworth RGB Electronics 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 Shenzhen Skyworth RGB Electronics Co Ltd filed Critical Shenzhen Skyworth RGB Electronics Co Ltd
Priority to CN201910894867.9A priority Critical patent/CN110673985B/zh
Publication of CN110673985A publication Critical patent/CN110673985A/zh
Application granted granted Critical
Publication of CN110673985B publication Critical patent/CN110673985B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore

Abstract

本发明公开了一种自动备份版本库的方法、存储介质及服务器,所述方法包括:启动备份时,获取服务器存储盘中的代码,将代码拷贝至预设备份区域,其中,所述预设备份区域为所述服务器配置的存储区域,且所述服务器位于服务器私有链中;服务器将备份区域的代码同步至服务器私有链中所有服务器。本发明实现了本地和远程两种方式对SVN版本库的自动备份,并且提高了备份的稳定性和效率。本地备份不受代码必须暂停上传提交的限制,远程备份能够将备份文件进行跨区域映射,从而进一步提高了代码备份的稳定性和安全性。

Description

一种自动备份版本库的方法、存储介质及服务器
技术领域
本发明涉及计算机应用技术领域,特别涉及一种自动备份版本库的方法、存储介质及服务器。
背景技术
随着现代计算机技术的发展,软件工程在高科技行业的所占的比重越来越大,特别是对于大型的企业来说,软件的工作量变得更加繁重,项目的代码量以几何级数增长,因此如何有效的管控代码、备份代码显得越来越重要。
Subversion(简称SVN)是一个自由开源的软件版本控制系统,它可以记录文件的每一次修改、开发者的提交权限以及日志提交等重要的信息,包含了工程师解决问题的思路,如果SVN的版本库由于物理因素(硬盘损坏)或者人为因素(误删除版本库目录)造成版本库被损坏,对于企业来说都是巨大的损失。例如,一个项目组有多达25个SVN的版本库,那么版本库的总大小多达100多G,每个版本库的日志提交记录少则几千条,多则上万条,所以对于版本库的备份显得至关重要。
目前的现有技术方案主要通过普通的复制的方式将版本库进行本地备份,但是普通的复制的方式,在进行备份时要求暂停代码的上传提交,否则存在版本库无法恢复的风险,另外如若备份磁盘发生损坏,同样也会造成不可恢复的风险。
因而现有技术还有待改进和提高。
发明内容
本发明要解决的技术问题在于,针对现有技术的不足,提供一种基于区块链技术自动备份版本库的方法及装置,以解决现有技术中因为代码仓库受物理因素或者人为因素损坏,而使SVN代码版本库无法恢复的问题。
为了解决上述技术问题,本发明所采用的技术方案如下:
一种自动备份版本库的方法,其包括:
启动备份时,获取服务器存储盘中的代码,将代码拷贝至预设备份区域,其中,所述预设备份区域为所述服务器配置的存储区域,且所述服务器位于服务器私有链中;
服务器将备份区域的代码同步至服务器私有链中所有服务器。
所述自动备份版本库的方法,其中,所述自动备份版本库的方法还包括:
将所述备份区域内代码发送至远程服务器,将代码备份至远程服务器。
所述自动备份版本库的方法,其中,所述自动备份版本库的方法还包括:
当获取到备份指令时,判断当前备份时间与前一全量备份时间的时间间隔;
当所述时间间隔满足预设周期时,对代码进行全量备份;
所述自动备份版本库的方法,其中,所述自动备份版本库的方法还包括:
当所述时间间隔不满足预设周期时,对代码进行增量备份。
所述自动备份版本库的方法,其中,所述当所述时间间隔不满足预设周期时,对代码进行增量备份具体包括:
当所述时间间隔不满足预设周期时,将当前的代码与上一次提交的代码进行比较,以获取待更新的代码;
用所述待更新的代码实现对代码进行增量备份。
所述自动备份版本库的方法,其中,所述服务器至少包括一个存储区域,一个备份区域。
所述自动备份版本库的方法,其中,所述自动备份版本库的方法还包括:
对代码进行远程备份,采用rsync的映射方式将svnadmin dump的备份进行跨服务器的映射,以将代码备份至远程服务器。
所述自动备份版本库的方法,其中,所述自动备份版本库的方法还包括:
对每次备份的文件以其对应的日期进行文件命名。
一种计算机可读存储介质,其中,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如上任意一项所述的自动备份版本库的方法中的步骤。
一种服务器,其中,包括:处理器和存储器;所述存储器上存储有可被所述处理器执行的计算机可读程序;所述处理器执行所述计算机可读程序时实现如上任意一项所述的自动备份版本库的方法中的步骤。
有益效果:与现有技术相比,本发明公开了一种自动备份版本库的方法、存储介质及服务器,所述方法包括:启动备份时,获取服务器存储盘中的代码,将代码拷贝至预设备份区域,其中,所述预设备份区域为所述服务器配置的存储区域,且所述服务器位于服务器私有链中;服务器将备份区域的代码同步至服务器私有链中所有服务器。本发明实现了本地和远程两种方式对SVN版本库的自动备份,并且提高了备份的稳定性和效率。本地备份不受代码必须暂停上传提交的限制,远程备份能够将备份文件进行跨区域映射,从而进一步提高了代码备份的稳定性和安全性。
附图说明
图1为本发明提供的一种自动备份版本库的方法较佳实施例的流程图。
图2为本发明提供的一种自动备份版本库的方法较佳实施例的总体系统示意图。
图3本发明提供的一种自动备份版本库的方法又一流程图。
图4为本发明提供的服务器较佳实施例的结构原理图。
具体实施方式
本发明提供一种自动备份版本库的方法、存储介质及服务器,为使本发明的目的、技术方案及效果更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
下面结合附图,通过对实施例的描述,对发明内容作进一步说明。
请参照图1,图1为本发明提供的一种自动备份版本库的方法较佳实施例的流程图。所述方法包括:
S100、启动备份时,获取服务器存储盘中的代码,将代码拷贝至预设备份区域,其中,所述预设备份区域为所述服务器配置的存储区域,且所述服务器位于服务器私有链中。
具体地,本发明主要基于区块链技术的去中心化、区块节点数据不可更改的特性,应用于软件代码备份领域,适用于企业拥有大量代码,可以避免由于物理因素以及人为因素造成对版本库的损坏,减小软件代码的版本库无法恢复的风险。
本实施例中,在启动代码备份时,获取服务器存储盘中的代码,将代码拷贝至预设备份区域,需要说明的是,上述备份方式为本地备份,即本地备份采用SVN官方推荐的方式进行备份。
S200、服务器将备份区域的代码同步至服务器私有链中所有服务器。
具体地,所述服务器至少包括一个存储区域,一个备份区域。也就是说,所述备份区域用于备份所述存储区域的代码,并且在相应的时间段,将备份的代码更新至各个区块节点,从而进一步保证了代码版本库的安全性。
如图2所示,图2为本发明提供的一种自动备份版本库的方法较佳实施例的总体系统示意图。本发明的总系统包括:一台用于存储SVN仓库的服务器1,服务器1挂载有三块磁盘,本地自动备份时,能够实现自动将磁盘1存储的SVN版本库自动备份至磁盘3。
另外系统还包含一台备份服务器2,用于实现SVN仓库的远程备份。服务器1和服务器2能够通过网络实现正常的通讯,服务器2会将备份在服务器1磁盘3的备份数据进行自动同步,以实现两台服务器之间SVN仓库数据之间的传输,从而实现SVN仓库的远程备份。
本实施例的一个实现方式中,所述自动备份版本库的方法还包括:
S300、将所述备份区域内代码发送至远程服务器,将代码备份至远程服务器。
具体地,由于备份文件较大,远程备份采用基于SSH协议的rsync方式进行映射,rsync的映射方式可以实现在映射时值映射差异文件,从而可以提高文件的传输效率,并且rsync的映射方式能够保持文件原来的权限、时间以及软硬连接等信息。也就是说,本发明实现了对代码进行远程备份,采用rsync的映射方式将svnadmin dump的备份进行跨服务器的映射,以将代码备份至远程服务器。并且,svnadmin dump备份的方式与普通copy的方式相比,此方式不受代码备份时必须暂停提交上传的限制,并且svnadmin dump的备份方式不仅支持全量备份,而且支持增量备份,并提供了版本恢复机制,更加灵活可靠。
进一步,本发明还将本地备份和远程备份的脚本文件,分别加入各自服务器的crontab定时执行任务的进程中,从而实现本地备份和远程备份的自动化、智能化。
进一步,如图3所示,图3本发明提供的一种自动备份版本库的方法又一流程图。作为本发明的实例,流程图以7天一个完整的备份周期,进行阐述。当程序的代码量较大时,代码备份会耗费较大的磁盘空间,因此当一个备份周期结束时,会将之前的备份进行清除。在实际实施的过程中可以根据版本库的具体大小以及服务器磁盘的空间大小,对备份的周期进行调整。
步骤S101,首次备份时,会进行代码的全量备份,即会备份从代码仓库建立开始,备份到目前代码仓库的最新版本,并且在备份结束时会将目前备份的仓库的最新版本以文件的形式进行存储。
全量备份,使用SVN官方推荐的方式svnadmin dump的方式进行备份:
svnadmin dump版本库路径及名称–revision导出的版本号>导出的命名
在进行备份时,会将文件的后几位命名为当前的日期,具体到年月日。
在备份结束时会使用命令svnlook youngest去查看目前版本库最新的版本,并写入文件中,记录目前版本库的最新版本B1;
步骤S102,会进行增量备份,在进行增量备份时,首先会去读取,上次的记录的版本库的最新版本,即N1;然后会使用svnlook youngest去查看当前版本库的最新版本,然后在上次版本的基础上进行增量备份。增量备份时使用如下命令:
svnadmin dump版本库路径及名称–revision上次导出的版本号:到本次要导出到的版本号–incremental>导出的命名
备份结束时,会将最新的版本号记录进文件中,以便后续版本进行备份时做为备份的基础版本。同时如果此次备份周期不是第一个周期,会根据文件名去进行删除之前的备份文件。
步骤S103,步骤104,步骤105,步骤106,步骤S107会一次依据上一次的备份版本进行增量备份,并分别以对应的日期进行文件命名,记录备份时系统的最新版本;同时若备份不是第一个周期,还会同时删除之前的增量备份文件。
步骤S108,第一个备份周期结束,因此会开始进行第二次全量备份,在进行备份时,方法同步骤S101,但是在备份结束后会将S101的备份文件进行删除,释放磁盘空间。
本实施例中,所述自动备份版本库的方法还包括:
当获取到备份指令时,判断当前备份时间与前一全量备份时间的时间间隔;
当所述时间间隔满足预设周期时,对代码进行全量备份;
当所述时间间隔不满足预设周期时,对代码进行增量备份。
具体地,所述当所述时间间隔不满足预设周期时,对代码进行增量备份具体包括:
当所述时间间隔不满足预设周期时,将当前的代码与上一次提交的代码进行比较,以获取待更新的代码;
用所述待更新的代码实现对代码进行增量备份。
本发明还提供了一种服务器,如图4所示,其包括至少一个处理器(processor)20;显示屏21;以及存储器(memory)22,还可以包括通信接口(Communications Interface)23和总线24。其中,处理器20、显示屏21、存储器22和通信接口23可以通过总线24完成相互间的通信。显示屏21设置为显示初始设置模式中预设的用户引导界面。通信接口23可以传输信息。处理器20可以调用存储器22中的逻辑指令,以执行上述实施例中的方法。
此外,上述的存储器22中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。
存储器22作为一种计算机可读存储介质,可设置为存储软件程序、计算机可执行程序,如本公开实施例中的方法对应的程序指令或模块。处理器30通过运行存储在存储器22中的软件程序、指令或模块,从而执行功能应用以及数据处理,即实现上述实施例中的方法。
存储器22可包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端设备的使用所创建的数据等。此外,存储器22可以包括高速随机存取存储器,还可以包括非易失性存储器。例如,U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等多种可以存储程序代码的介质,也可以是暂态存储介质。
本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现上述实施例所述的自动备份版本库的方法、存储介质及服务器及装置中的步骤。
此外,上述服务器以及存储介质中的多条指令处理器加载并执行的具体过程在上述方法中已经详细说明,在这里就不再一一陈述。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (4)

1.一种自动备份版本库的方法,其特征在于,其包括:
启动备份时,获取服务器存储盘中的代码,将代码拷贝至预设备份区域,其中,所述预设备份区域为所述服务器配置的存储区域,且所述服务器位于服务器私有链中;
服务器将备份区域的代码同步至服务器私有链中所有服务器;
所述自动备份版本库的方法还包括:
将所述备份区域内代码发送至远程服务器,将代码备份至远程服务器;
所述服务器至少包括一个存储区域,一个备份区域;
对代码进行远程备份,采用rsync的映射方式将svnadmin dump的备份进行跨服务器的映射,以将代码备份至远程服务器;
将备份时的脚本文件,分别加入各服务器的crontab定时执行任务的进程中;
当获取到备份指令时,判断当前备份时间与前一全量备份时间的时间间隔;
当所述时间间隔满足预设周期时,对代码进行全量备份,备份不是第一个周期,删除之前的备份;
当所述时间间隔不满足预设周期时,将当前的代码与上一次提交的代码进行比较,以获取待更新的代码;
用所述待更新的代码实现对代码进行增量备份。
2.根据权利要求1所述自动备份版本库的方法,其特征在于,所述自动备份版本库的方法还包括:
对每次备份的文件以其对应的日期进行文件命名。
3.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如权利要求1~2任意一项所述的自动备份版本库的方法中的步骤。
4.一种服务器,其特征在于,包括:处理器和存储器;所述存储器上存储有可被所述处理器执行的计算机可读程序;所述处理器执行所述计算机可读程序时实现如权利要求1~2任意一项所述的自动备份版本库的方法中的步骤。
CN201910894867.9A 2019-09-20 2019-09-20 一种自动备份版本库的方法、存储介质及服务器 Active CN110673985B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910894867.9A CN110673985B (zh) 2019-09-20 2019-09-20 一种自动备份版本库的方法、存储介质及服务器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910894867.9A CN110673985B (zh) 2019-09-20 2019-09-20 一种自动备份版本库的方法、存储介质及服务器

Publications (2)

Publication Number Publication Date
CN110673985A CN110673985A (zh) 2020-01-10
CN110673985B true CN110673985B (zh) 2023-12-26

Family

ID=69078548

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910894867.9A Active CN110673985B (zh) 2019-09-20 2019-09-20 一种自动备份版本库的方法、存储介质及服务器

Country Status (1)

Country Link
CN (1) CN110673985B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113468118B (zh) * 2021-05-11 2023-09-22 深圳前海移联科技有限公司 一种基于区块链的文件增量存储方法、装置及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105446828A (zh) * 2014-09-30 2016-03-30 北京金山云网络技术有限公司 一种数据库备份、恢复方法、装置及系统
CN109213901A (zh) * 2018-09-18 2019-01-15 百度在线网络技术(北京)有限公司 一种区块链的数据同步方法、装置、设备及介质
CN110120983A (zh) * 2019-06-14 2019-08-13 浪潮软件集团有限公司 基于inotify和rsync自动化安装部署实现SVN实时同步备份的方法和系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110196840A1 (en) * 2010-02-08 2011-08-11 Yoram Barzilai System and method for incremental backup storage

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105446828A (zh) * 2014-09-30 2016-03-30 北京金山云网络技术有限公司 一种数据库备份、恢复方法、装置及系统
CN109213901A (zh) * 2018-09-18 2019-01-15 百度在线网络技术(北京)有限公司 一种区块链的数据同步方法、装置、设备及介质
CN110120983A (zh) * 2019-06-14 2019-08-13 浪潮软件集团有限公司 基于inotify和rsync自动化安装部署实现SVN实时同步备份的方法和系统

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
(美)Arnold Robbins著.《Unix技术手册 中文版》.东南大学出版社,2009,(第1版),第970-971页. *
(美)兰金斯等著.《SYBASE SQL Server 11参考大全》.宇航出版社,1998,(第1版),第594-595页. *
云端自动备份工具的设计与研究;李慧玲 等;《太原师范学院学报(自然科学版)》;第17卷(第2期);第42-43页 *
吴少保著.《图书馆自动化集成系统ILAS应用环境指南》.河北科学技术出版社,1999,(第1版),第203页. *

Also Published As

Publication number Publication date
CN110673985A (zh) 2020-01-10

Similar Documents

Publication Publication Date Title
AU2012273366B2 (en) Managing replicated virtual storage at recovery sites
US9563516B2 (en) Managing backup operations from a client system to a primary server and secondary server
US9588847B1 (en) Recovering corrupt virtual machine disks
US8090917B2 (en) Managing storage and migration of backup data
US20210294774A1 (en) Storage system implementing snapshot longevity ranking for efficient management of snapshots
KR102057527B1 (ko) 자동적인 클라우드-기반 전체 데이터 백업 및 모바일 디바이스들 상에서의 복원을 위한 시스템 및 방법
US7747830B2 (en) Backup system with continuous data protection
US10719407B1 (en) Backing up availability group databases configured on multi-node virtual servers
CN106407040A (zh) 一种远程数据复制方法及系统
AU2012273366A1 (en) Managing replicated virtual storage at recovery sites
CA2885059A1 (en) Retrieving point-in-time copies of a source database for creating virtual databases
US10146633B2 (en) Data recovery from multiple data backup technologies
EP1782214A2 (en) Storing data replicas remotely
US8423517B2 (en) System and method for determining the age of objects in the presence of unreliable clocks
US20070033361A1 (en) Apparatus, system, and method for fastcopy target creation
US20180314457A1 (en) Execution framework for a complex data protection operation
US11494271B2 (en) Dynamically updating database archive log dependency and backup copy recoverability
CN102193841B (zh) 一种Subversion配置库的备份方法及装置
US9037821B1 (en) Systems and methods for replicating snapshots across backup domains
CN110673985B (zh) 一种自动备份版本库的方法、存储介质及服务器
US11966297B2 (en) Identifying database archive log dependency and backup copy recoverability
US8595271B1 (en) Systems and methods for performing file system checks
US10228879B1 (en) System and method for backup and restore of offline disks in mainframe computers
US7472141B1 (en) System and method for controlling off-host policies
GB2522732A (en) Data migration method and systems

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