一种用于服务器内程序版本更新的方法和系统与流程

文档序号:19589239发布日期:2020-01-03 10:02阅读:327来源:国知局
一种用于服务器内程序版本更新的方法和系统与流程

本发明涉及互联网网络领域,具体涉及一种用于服务器内程序版本更新的方法和一种用于服务器内程序版本更新的系统。



背景技术:

随着互联网技术的飞速发展,遍布全球各地的服务器将整个世界连通,人们通过各种智能设备访问不同的服务器的程序,从而享受便捷智能的生活,同时,为了满足人们多样的需求以及测试研发的需要,编程人员需要定期对服务器中程序的版本进行升级,即将代码库中编写好的程序代码部署到服务器中,从而完成对服务器中程序版本以及功能的更新。现有的服务器中程序版本更新方式,是将代码库中已编辑好的最新版本的程序的所有文件全部代码部署到服务器中,整个部署速度缓慢,且单个代码库无法同时对多个服务器进行代码部署,即无法同时对多个服务器中的程序进行版本升级。



技术实现要素:

针对现有技术中存在的缺陷,本发明的目的在于提供一种用于服务器内程序版本更新的方法和一种用于服务器内程序版本更新的系统,整个更新过程速度快,且支持同时对多个服务器进行程序更新。

为达到以上目的,本发明采取的技术方案是:该方法包括以下步骤:

步骤s1:获取代码库的分支,并获取分支所关联的配置项,所述分支至少为一个,且每个分支关联一配置项,每个配置项至少包含一个服务器地址,每个服务器地址对应一服务器;

步骤s2:根据获取的配置项中服务器的地址,在代码库与一个或多个服务器间建立连接;

步骤s3:遍历与代码库建立连接的服务器内的文件,判断单个服务器内是否含有用以表明服务器内程序当前版本的版本号信息的特征文件,若服务器中不含有特征文件,则将代码库中最新版本程序的所有文件加载到该服务器对应的上传文件列表中,若服务器中含有特征文件,则将代码库中最新版本程序的所有文件与该服务器中当前版本程序的所有文件进行对比,得到差异文件,并将差异文件加载到该服务器对应的上传文件列表中;

步骤s4:将上传文件列表中的文件部署到对应的服务器中。

在上述技术方案的基础上,所述代码库与服务器通过分布式版本控制软件建立连接。

在上述技术方案的基础上,所述步骤s1中:通过调用libgit2工具的接口获取代码库的分支,所述libgit2工具用于给分布式版本控制软件提供应用程序编程接口。

在上述技术方案的基础上,若服务器中含有特征文件,则调用libgit2工具的接口,将代码库中最新版本程序的所有文件与该服务器中当前版本程序的所有文件进行对比,得到差异文件。

在上述技术方案的基础上,所述差异文件为代码库中最新版本程序的所有文件相较于服务器中当前版本程序的所有文件新增和修改的文件。

在上述技术方案的基础上,所述步骤s4具体为:

将上传列表中的文件压缩,调用安全复制功能,将压缩后的文件上传到对应服务器中并解压。

在上述技术方案的基础上,该方法还包括:当上传文件列表中的文件部署到对应的服务器中后,获取代码库中表明最新版本程序的版本号信息,并生成特征文件后上传到服务器中。

本发明还提供一种用于服务器版本更新的系统,该系统包括:代码库、至少一服务器和控制端;

所述代码库中含有最新版本程序,且所述代码库包括至少一个分支,每个分支关联一配置项,每个配置项至少包含一个服务器地址,每个服务器地址对应一服务器;

所述服务器内含有当前版本程序;

所述控制端用于获取代码库的分支以及代码库所对应的配置项,并根据配置项中的服务器地址,将代码库与一个或多个服务器连接,然后判断单个服务器内是否含有用以表明服务器内程序当前版本的版本号信息的特征文件,若服务器中不含有特征文件,则将代码库中最新版本程序的所有文件部署到该服务器中,若服务器中含有特征文件,则将代码库中最新版本程序的所有文件与该服务器中当前版本程序的所有文件进行对比,得到差异文件,并将差异文件部署到服务器中。

在上述技术方案的基础上,所述控制端还用于将代码库中用以表明最新版本程序的版本号信息的特征文件部署到服务器中。

与现有技术相比,本发明的一种用于服务器内程序版本更新的方法的优点在于:因代码库的每个分支所关联一配置项,切换不同的分支,会对应不同的配置项,且配置项均对应有特定的服务器,从而使得代码库能够同时与多个服务器进行连接,从而同时给多个服务器内的程序进行版本更新,有效缩短程序更新时间,同时,对于含有特征文件的服务器,则将代码库中最新版本程序的所有文件与该服务器中当前版本程序的所有文件进行对比,仅将新增和改动的文件部署到服务器中,减少数据的传输量,进一步缩短服务器内程序的更新时间。还可以根据配置项的需求,在对服务器内的程序进行版本更新时,支持排出某些文件和固定包含某些文件。

本发明的一种用于服务器内程序版本更新的系统的优点在于:对于服务器中的当前版本程序,通过与代码库中的最新版本程序比对,仅更新有差异的文件,整个更新过程简单且更新速度快。

附图说明

图1为本发明一种用于服务器内程序版本更新的方法的流程图。

具体实施方式

以下结合附图对本发明作进一步详细说明。

本发明提供一种用于服务器内程序版本更新的方法,即将代码库中的最新版本程序部署到服务器中,对服务器中当前版本程序进行更新或升级,本发明的更新方法通过分布式版本控制软件完成,本实施例中,分布式版本控制软件为git。参见图1所示,该方法具体包括以下步骤:

步骤s1:调用libgit2工具的接口,获取代码库的分支,并获取分支所关联的配置项,代码库的分支至少为一个,且每个分支关联一配置项,每个配置项至少包含一个服务器地址,每个服务器地址对应一服务器。libgit2工具通常用于给分布式版本控制软件提供应用程序编程接口。配置项具体的包括:服务器的用户名、服务器地址(或服务器的部署路径)、前置任务、后置任务、排出文件列表、包含文件列表以及服务器列表,服务器列表即为该配置项所对应的服务器的个数,若对应多个服务器,则相应的服务器的用户名和服务器地址个数也为多个,且每个服务器均对应一服务器的用户名、一服务器地址、一前置任务、一后置任务、一排出文件列表和一包含文件列表。前置任务为对服务器中的程序更新前,对代码库中最新版本程序的预处理过程,比如对程序文件的检查、校对等等。后置任务为当最新版本程序部署到服务器中后,对程序的调试等工作。排出文件列表为程序部署到某个服务器中时,不能部署到该服务器中的文件。包含文件列表为程序部署到某个服务器中时,必须要部署到该服务器中的文件。

步骤s2:根据获取的配置项,判断配置项里是否配置了前置任务,若有,则先执行前置任务,然后根据获取的配置项中服务器的地址和服务器的用户名,在分布式版本控制软件的控制下,在代码库与对应服务器间建立连接,具体的,代码库与一个或多个服务器进行连接,从而达到同时对多个服务器进行程序版本更新的目的,同时因每个配置项均与分支为关联关系,即一一对应,这样也实现了同时对不同分支对应的服务器进行版本更新的目的。

步骤s3:遍历与代码库建立连接的服务器内的文件,判断单个服务器内是否含有用以表明服务器内程序当前版本的版本号信息的特征文件,通常情况下,特征文件存在于服务器的path位置处,即服务器用于与代码库连接的部署路径处,特征文件的格式为40个字母或数字组成的字符串,若服务器中不含有特征文件,说明该服务器内之前没有程序,因而需要将代码库中最新版本程序的所有文件加载到该服务器对应的上传文件列表中,若服务器中含有特征文件,则调用libgit2工具的接口,将代码库中最新版本程序的所有文件与该服务器中当前版本程序的所有文件进行对比,得到差异文件,差异文件为代码库中最新版本程序的所有文件相较于服务器中当前版本程序的所有文件新增和修改的文件,然后将差异文件加载到该服务器对应的上传文件列表中。每个服务器均对应有一上传文件列表。

步骤s3:对于上传文件列表中的文件,根据对应服务器的配置项要求,在上传文件列表中加入包含文件列表中要求的文件以及剔除排出文件列表中要求的文件,然后将上传文件列表中的文件进行压缩,调用scp功能,将压缩后的文件上传到对应的服务器中,即将压缩后的上传文件列表中的文件上传到与该上传文件列表对应的单个服务器中,并使用ssh命令解压,scp功能是基于安全数据传输协议的一项安全传输功能,可以在不同计算机或服务器之间复制文件和目录,ssh是一项创建在应用层和传输层基础上的安全协议,可以安全的为服务器执行各种命令。解压完后,再次调用libgit2工具的接口,获取代码库中表明最新版本程序的版本号信息,并将其生成特征文件后上传到服务器中,若该服务器的配置项里配置了后置任务,则执行后置任务。对于多个服务器,其每个上传文件列表与服务器间的上传文件列表中文件的上传方式,均按该步骤s3进行。

本发明的服务器内程序版本更新方法,根据分支所关联的配置项,使得代码库能够与多个服务器进行连接,从而同时给多个服务器内的程序进行版本更新,有效缩短程序更新时间,同时,对于含有特征文件的服务器,则将代码库中最新版本程序的所有文件与该服务器中当前版本程序的所有文件进行对比,仅将新增和改动的文件部署到服务器中,进一步缩短程序的更新时间。

本发明还提供一种采用上述方法的用于服务器版本更新的系统,该系统包括代码库、至少一服务器和控制端;

代码库中含有最新版本程序,且代码库还包括至少一个分支,每个分支关联一配置项,每个配置项至少包含一个服务器地址,每个服务器地址对应一服务器;服务器内含有当前版本程序;控制端用于获取代码库的分支以及代码库所对应的配置项,并根据配置项中的服务器地址,将代码库与一个或多个服务器连接,然后判断单个服务器内是否含有用以表明服务器内程序当前版本的版本号信息的特征文件,若服务器中不含有特征文件,则将代码库中最新版本程序的所有文件部署到该服务器中,若服务器中含有特征文件,则将代码库中最新版本程序的所有文件与该服务器中当前版本程序的所有文件进行对比,得到差异文件,并将差异文件部署到服务器中,最后再将代码库中用以表明最新版本程序的版本号信息的特征文件部署到服务器中。最新版本程序文件在部署到服务器之前,还需根据对应服务器的配置项要求,加入包含文件列表中要求的文件以及剔除排出文件列表中要求的文件,然后再部署到服务器中,从而完成同时对一个或多个服务器内程序的版本更新。

本发明不局限于上述实施方式,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围之内。本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。

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