一种代码更新方法与流程

文档序号:12470474阅读:2245来源:国知局

本发明涉及网络通信技术领域,尤其涉及一种代码更新方法。



背景技术:

一个集群后的一组相同功能的服务器批量更新代码不方便,并且不能将每次更新的内容做记录。但发现更新的内容有问题后不能快速的恢复所有的服务器到原来的代码。

传统的做法是在一台服务器上通过数据镜像备份工具rsync将新的代码同步到其他服务器上,或者在每台需要更新的服务器上使用rsync从最新的代码服务器上将代码同步到本地,如果发现更新的代码有问题,在短时间内无法找到具体问题时需要将所以更新过的文件全部还原,有可能造成文件漏同步或者多同步的问题。并且每次同步代码后无法保证每台服务器都得到了正确的更新,可能会因为网络问题漏同步文件,或者文件同步的不完整,这都无法得到验证。每次更新完文件后并没有对更新的文件做一个具体的记录,也不利于在出现问题后对更新过的内容做核查。



技术实现要素:

本发明要解决的技术问题,在于提供一种代码更新方法,保证每次服务器都能及时得到更新,每次更新都有记录,出问题可以及时回滚,提高了项目的稳定性和安全性。

本发明的问题是这样实现的:一种代码更新方法,所述方法包括如下步骤:

步骤1、将每个项目要更新的代码内容进行打包成更新包;

步骤2、在一台ftp或者http服务器上存放每次需要部署的代码更新包;

步骤3、在每个项目的服务器上部署一个能自动下载更新包的脚本,让服务器自动下载更新包进行更新,所述脚本通过更新包的内容能实现更新和回滚操作。

进一步的,所述步骤1具体为:将每个项目要更新的代码内容都按一规范进行打包,所述规范为:打包后的更新包根据日期和时间点信息让每次更新的包有固定的名称。

进一步的,所述步骤2具体为:架设一台ftp或者http服务器,用于存放每次需要更新的更新包,并且在更新包所在的目录下存放一个配置文件,在配置文件的最后一行写入需要更新的更新包的名称、更新的时间以及包的md5值,该md5值用于生成和校验文件。

进一步的,所述步骤3具体为:在每台需要更新的服务器上部署一个更新包的脚本,该脚本的功能是定时去存放更新包的服务器上下载更新的配置文件,读取配置文件中的最后一行记录,查看最新的更新包对应的名称,获得最新的包名后对比本地上一次更新包的名称是否相同,相同,则不进更新操作;如果不同则有新的更新内容,则根据更新配置文件中的包名去ftp或者http服务器上下载更新包,下载完成后对更新包做md5sum计算,并比较md5sum计算的结果是否和更新配置文件中的结果相同,如果相同则说明更新包没问题,如果不同就重新下载;检查完更新包后脚本再读取更新配置文件中的更新时间,获得更新时间后对比当前系统时间是否到了更新时间,一旦到了就备份当前的代码,并解压最新的更新包进行更新。

进一步的,所述方法进一步包括:

当发现代码更新后出现问题,立即在更新服务器上的配置文件中加入一条新的更新记录,更新记录内容为最后一次正常的更新包的包名,让程序自动回滚到正常版本的代码。

本发明具有如下优点:本发明将每个项目要更新的代码内容都按一规范进行打包,架设一台ftp服务器,并使用php做一个页面可以上传更新包到这台ftp服务器上;在每个项目的的服务器上部署一个脚本,定时检查本地代码的是否是最新的,并对不ftp服务器上的代码,如果不是最新的就触发更新。保证每次服务器都能及时得到更新,每次更新都有记录,出问题可以及时回滚,提高了项目代码的稳定性和安全性。

附图说明

图1为本发明的方法流程示意图。

具体实施方式

请参阅图1所示,本发明的一种代码更新方法,所述方法包括如下步骤:

步骤1、将每个项目要更新的代码内容进行打包成更新包;所述步骤1具体为:将每个项目要更新的代码内容都按一规范进行打包,所述规范为:打包后的更新包根据日期和时间点信息让每次更新的包有固定的名称。并且打包文件也根据项目的完整路径打包。例如20120721-05:10.zip这样更新包名。

步骤2、在一台ftp或者http服务器上存放每次需要部署的代码更新包;所述步骤2具体为:架设一台ftp或者http服务器,用于存放每次需要更新的更新包,并且在更新包所在的目录下存放一个配置文件,在配置文件的最后一行写入需要更新的更新包的名称、更新的时间以及包的md5值,该md5值用于生成和校验文件。

步骤3、在每个项目的服务器上部署一个能自动下载更新包的脚本,让服务器自动下载更新包进行更新,所述脚本通过更新包的内容能实现更新和回滚操作。所述步骤3具体为:在每台需要更新的服务器上部署一个更新包的脚本,该脚本的功能是定时去存放更新包的服务器上下载更新的配置文件,读取配置文件中的最后一行记录,查看最新的更新包对应的名称,获得最新的包名后对比本地上一次更新包的名称是否相同,相同,则不进更新操作;如果不同则有新的更新内容,则根据更新配置文件中的包名去ftp或者http服务器上下载更新包,下载完成后对更新包做md5sum(用于服务器获得更新包后对包的内容进行验证)计算,并比较md5sum计算的结果是否和更新配置文件中的结果相同,如果相同则说明更新包没问题,如果不同就重新下载;检查完更新包后脚本再读取更新配置文件中的更新时间,获得更新时间后对比当前系统时间是否到了更新时间,一旦到了就备份当前的代码,并解压最新的更新包进行更新。

在本发明中,所述方法进一步包括:

当发现代码更新后出现问题,立即在更新服务器上的配置文件中加入一条新的更新记录,更新记录内容为最后一次正常的更新包的包名,让程序自动回滚到正常版本的代码。

总之,本发明将每个项目要更新的代码内容都按一规范进行打包,架设一台ftp服务器,并使用php做一个页面可以上传更新包到这台ftp服务器上;在每个项目的的服务器上部署一个脚本,定时检查本地代码的是否是最新的,并对不ftp服务器上的代码,如果不是最新的就触发更新。保证每次服务器都能及时得到更新,每次更新都有记录,出问题可以及时回滚,提高了项目代码的稳定性和安全性。

以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所做的均等变化与修饰,皆应属本发明的涵盖范围。

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