CN106250548A - 一种代码更新方法 - Google Patents
一种代码更新方法 Download PDFInfo
- Publication number
- CN106250548A CN106250548A CN201610659269.XA CN201610659269A CN106250548A CN 106250548 A CN106250548 A CN 106250548A CN 201610659269 A CN201610659269 A CN 201610659269A CN 106250548 A CN106250548 A CN 106250548A
- Authority
- CN
- China
- Prior art keywords
- bag
- renewal
- server
- code
- updating
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/178—Techniques for file synchronisation in file systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种代码更新方法,所述方法包括如下步骤:步骤1、将每个项目要更新的代码内容进行打包成更新包;步骤2、在一台ftp或者http服务器上存放每次需要部署的代码更新包;步骤3、在每个项目的服务器上部署一个能自动下载更新包的脚本,让服务器自动下载更新包进行更新,所述脚本通过更新包的内容能实现更新和回滚操作。本发明保证每次服务器都能及时得到更新,每次更新都有记录,出问题可以及时回滚,提高了项目的稳定性和安全性。
Description
技术领域
本发明涉及网络通信技术领域,尤其涉及一种代码更新方法。
背景技术
一个集群后的一组相同功能的服务器批量更新代码不方便,并且不能将每次更新的内容做记录。但发现更新的内容有问题后不能快速的恢复所有的服务器到原来的代码。
传统的做法是在一台服务器上通过数据镜像备份工具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服务器上的代码,如果不是最新的就触发更新。保证每次服务器都能及时得到更新,每次更新都有记录,出问题可以及时回滚,提高了项目代码的稳定性和安全性。
以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所做的均等变化与修饰,皆应属本发明的涵盖范围。
Claims (5)
1.一种代码更新方法,其特征在于:所述方法包括如下步骤:
步骤1、将每个项目要更新的代码内容进行打包成更新包;
步骤2、在一台ftp或者http服务器上存放每次需要部署的代码更新包;
步骤3、在每个项目的服务器上部署一个能自动下载更新包的脚本,让服务器自动下载更新包进行更新,所述脚本通过更新包的内容能实现更新和回滚操作。
2.根据权利要求1所述的一种代码更新方法,其特征在于:所述步骤1具体为:将每个项目要更新的代码内容都按一规范进行打包,所述规范为:打包后的更新包根据日期和时间点信息让每次更新的包有固定的名称。
3.根据权利要求1所述的一种代码更新方法,其特征在于:所述步骤2具体为:架设一台ftp或者http服务器,用于存放每次需要更新的更新包,并且在更新包所在的目录下存放一个配置文件,在配置文件的最后一行写入需要更新的更新包的名称、更新的时间以及包的md5值,该md5值用于生成和校验文件。
4.根据权利要求3所述的一种代码更新方法,其特征在于:所述步骤3具体为:在每台需要更新的服务器上部署一个更新包的脚本,该脚本的功能是定时去存放更新包的服务器上下载更新的配置文件,读取配置文件中的最后一行记录,查看最新的更新包对应的名称,获得最新的包名后对比本地上一次更新包的名称是否相同,相同,则不进更新操作;如果不同则有新的更新内容,则根据更新配置文件中的包名去ftp或者http服务器上下载更新包,下载完成后对更新包做md5sum计算,并比较md5sum计算的结果是否和更新配置文件中的结果相同,如果相同则说明更新包没问题,如果不同就重新下载;检查完更新包后脚本再读取更新配置文件中的更新时间,获得更新时间后对比当前系统时间是否到了更新时间,一旦到了就备份当前的代码,并解压最新的更新包进行更新。
5.根据权利要求3所述的一种代码更新方法,其特征在于:所述方法进一步包括:
当发现代码更新后出现问题,立即在更新服务器上的配置文件中加入一条新的更新记录,更新记录内容为最后一次正常的更新包的包名,让程序自动回滚到正常版本的代码。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610659269.XA CN106250548A (zh) | 2016-08-12 | 2016-08-12 | 一种代码更新方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610659269.XA CN106250548A (zh) | 2016-08-12 | 2016-08-12 | 一种代码更新方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106250548A true CN106250548A (zh) | 2016-12-21 |
Family
ID=58079005
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610659269.XA Pending CN106250548A (zh) | 2016-08-12 | 2016-08-12 | 一种代码更新方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106250548A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106685738A (zh) * | 2017-02-22 | 2017-05-17 | 广东网金控股股份有限公司 | 一种net项目的配置项的维护方法和维护系统 |
CN106844494A (zh) * | 2016-12-26 | 2017-06-13 | 上海博泰悦臻网络技术服务有限公司 | 一种地图查询数据的更新方法、系统及服务器 |
CN108984197A (zh) * | 2018-07-12 | 2018-12-11 | 北京京东金融科技控股有限公司 | 一种代码更新方法和装置 |
CN109739529A (zh) * | 2018-12-04 | 2019-05-10 | 贵阳朗玛信息技术股份有限公司 | 一种程序自动发布的方法及装置 |
CN110737454A (zh) * | 2019-10-17 | 2020-01-31 | 腾讯科技(深圳)有限公司 | 软件项目更新方法、装置、计算机设备及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2005045671A1 (en) * | 2003-10-27 | 2005-05-19 | American Power Conversion Corporation | System and method for updating a software program |
CN101594574A (zh) * | 2008-05-30 | 2009-12-02 | 三星电子株式会社 | 移动终端的组群信息管理的实现方法 |
CN102025778A (zh) * | 2010-11-25 | 2011-04-20 | 成都勤智数码科技有限公司 | 一种基于Shell的软件版本升级工作方法 |
CN102510409A (zh) * | 2011-12-19 | 2012-06-20 | 厦门雅迅网络股份有限公司 | 一种利用无线网络对移动终端程序快速远程更新的方法及系统 |
CN104866341A (zh) * | 2015-05-07 | 2015-08-26 | 北京金山安全软件有限公司 | 一种组件升级方法、装置及终端 |
CN105307195A (zh) * | 2015-09-22 | 2016-02-03 | 广东欧珀移动通信有限公司 | 一种更新接入点名称参数的方法及装置 |
CN105786538A (zh) * | 2014-12-24 | 2016-07-20 | 博雅网络游戏开发(深圳)有限公司 | 基于安卓系统的软件升级方法和装置 |
-
2016
- 2016-08-12 CN CN201610659269.XA patent/CN106250548A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2005045671A1 (en) * | 2003-10-27 | 2005-05-19 | American Power Conversion Corporation | System and method for updating a software program |
CN101594574A (zh) * | 2008-05-30 | 2009-12-02 | 三星电子株式会社 | 移动终端的组群信息管理的实现方法 |
CN102025778A (zh) * | 2010-11-25 | 2011-04-20 | 成都勤智数码科技有限公司 | 一种基于Shell的软件版本升级工作方法 |
CN102510409A (zh) * | 2011-12-19 | 2012-06-20 | 厦门雅迅网络股份有限公司 | 一种利用无线网络对移动终端程序快速远程更新的方法及系统 |
CN105786538A (zh) * | 2014-12-24 | 2016-07-20 | 博雅网络游戏开发(深圳)有限公司 | 基于安卓系统的软件升级方法和装置 |
CN104866341A (zh) * | 2015-05-07 | 2015-08-26 | 北京金山安全软件有限公司 | 一种组件升级方法、装置及终端 |
CN105307195A (zh) * | 2015-09-22 | 2016-02-03 | 广东欧珀移动通信有限公司 | 一种更新接入点名称参数的方法及装置 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106844494A (zh) * | 2016-12-26 | 2017-06-13 | 上海博泰悦臻网络技术服务有限公司 | 一种地图查询数据的更新方法、系统及服务器 |
CN106844494B (zh) * | 2016-12-26 | 2021-08-24 | 上海博泰悦臻网络技术服务有限公司 | 一种地图查询数据的更新方法、系统及服务器 |
CN106685738A (zh) * | 2017-02-22 | 2017-05-17 | 广东网金控股股份有限公司 | 一种net项目的配置项的维护方法和维护系统 |
CN106685738B (zh) * | 2017-02-22 | 2019-11-12 | 广东网金控股股份有限公司 | 一种net项目的配置项的维护方法和维护系统 |
CN108984197A (zh) * | 2018-07-12 | 2018-12-11 | 北京京东金融科技控股有限公司 | 一种代码更新方法和装置 |
CN108984197B (zh) * | 2018-07-12 | 2022-08-12 | 京东科技控股股份有限公司 | 一种代码更新方法和装置 |
CN109739529A (zh) * | 2018-12-04 | 2019-05-10 | 贵阳朗玛信息技术股份有限公司 | 一种程序自动发布的方法及装置 |
CN110737454A (zh) * | 2019-10-17 | 2020-01-31 | 腾讯科技(深圳)有限公司 | 软件项目更新方法、装置、计算机设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106250548A (zh) | 一种代码更新方法 | |
CN106815370B (zh) | 更新资源文件的方法、装置和系统 | |
CN104052818B (zh) | 一种移动终端的版本升级方法及装置 | |
CN107426309B (zh) | 一种信息同步方法、装置及系统 | |
CN104572672B (zh) | 异构数据库的同步方法和应用系统 | |
CN105160253B (zh) | 修复客户端程序的方法、装置、系统及服务器 | |
CN102053853A (zh) | 一种网络游戏版本更新方法 | |
CN106775723A (zh) | 基于Android平台的系统固件定制的方法和Android设备 | |
CN103220358B (zh) | 一种多终端在线文件同步方法、系统、服务器及终端设备 | |
CN106302753A (zh) | 客户端程序增量更新的方法及系统 | |
CN104699511B (zh) | 插件升级方法及装置 | |
CN105302895A (zh) | 一种数据缓存同步方法、服务器和客户端 | |
CN107451108B (zh) | 一种协同编辑文档的方法和系统 | |
CN106371881A (zh) | 一种用于服务器内程序版本更新的方法和系统 | |
CN106921731A (zh) | 漏洞修复方法及装置 | |
CN105224344A (zh) | 一种基于xml实现的软件升级文件配置方法 | |
CN109426521A (zh) | 一种无线终端版本升级系统及方法 | |
CN107003876A (zh) | 固件更新 | |
CN105117263A (zh) | 一种unix环境软件系统升级方法 | |
EP4050850A1 (en) | Service upgrading method, device and system | |
CN106371875A (zh) | 一种基于html5的手机应用更新机制 | |
CN106850724B (zh) | 数据推送方法及装置 | |
CN104092777A (zh) | 客户端的布局设定与服务器同步存储的方法及其系统 | |
CN109471799B (zh) | 一种需求环境的部署方法、装置、存储介质及终端 | |
CN113190448A (zh) | 测试代码更新方法及装置、电子设备、存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20161221 |