CN109947451B - 一种集群应用文件更新方法、***、介质及设备 - Google Patents
一种集群应用文件更新方法、***、介质及设备 Download PDFInfo
- Publication number
- CN109947451B CN109947451B CN201910227239.5A CN201910227239A CN109947451B CN 109947451 B CN109947451 B CN 109947451B CN 201910227239 A CN201910227239 A CN 201910227239A CN 109947451 B CN109947451 B CN 109947451B
- Authority
- CN
- China
- Prior art keywords
- file
- configuration
- configuration file
- modification time
- list
- 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
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种集群应用文件更新方法、***、介质及设备,该方法包括:逐个遍历部署位置文件列表中记录的位置ID和对应的部署位置;读入当前配置文件对应的属性配置文件的文件内容,并解析成按所述位置ID分组的配置变量值列表;分别按照每个所述位置ID将当前所述配置文件的文件内容中的变量值替换为对应的所述配置变量值列表中的配置变量值,并生成待发送文件;按所述部署位置分发所述待发送文件。本发明可对不同目标位置有不同局部内容的配置文件进行统一分发,减少维护集群软件配置文件的工作量,同时减少手工重复修改而出错的概率,提高分发文件的速度。
Description
技术领域
本发明涉及软件技术领域,具体涉及一种集群应用文件更新方法、***、介质及设备。
背景技术
在软件应用集群的管理和维护中,通常会有多个主机上程序和配置文件的更新,在各节点文件完全相同的情况下,这个工作靠一个一个脚本程序调用scp(一个基于SSH连接的跨主机文件传输工具)就可以完成,但在有些情况下部分配置文件可能会依据部署位置有所不同,对于这样的配置文件,部署和后期维护都是一个麻烦和高风险的事情:保留多份文件,手工一个个修改,然后通过scp分发。
这个过程存在的问题是手工修改多个类似文件,是非常容易出错的,而且修改众多文件也是耗时费力的事情,想象下有个上百台主机的集群,因为这类按位置不同的配置文件中某个参数需要调整,不得不一个个主机登上去手工修改文件然后保存,这个过程的可靠性是比较低的。
发明内容
针对上述技术问题,本发明提供一种集群应用文件更新方法、***、介质及设备。
本发明解决上述技术问题的技术方案如下:一种集群应用文件更新方法,包括:
S1.逐个遍历部署位置文件列表中记录的位置ID和对应的部署位置;
S2.读入当前配置文件对应的属性配置文件的文件内容,并解析成按所述位置ID分组的配置变量值列表;
S3.分别按照每个所述位置ID将当前所述配置文件的文件内容中的变量值替换为对应的所述配置变量值列表中的配置变量值,并生成待发送文件;
S4.按所述部署位置分发所述待发送文件。
为实现上述发明目的,本发明还提供一种集群应用文件更新***,包括:
遍历模块,用于逐个遍历部署位置文件列表中记录的位置ID和对应的部署位置;
解析模块,用于读入当前配置文件对应的属性配置文件的文件内容,并解析成按所述位置ID分组的配置变量值列表;
生成模块,用于分别按照每个所述位置ID将当前所述配置文件的文件内容中的变量值替换为对应的所述配置变量值列表中的配置变量值,并生成待发送文件;
分发模块,用于按所述部署位置分发所述待发送文件。
本发明还提供一种计算机可读存储介质,包括指令,当所述指令在计算机上运行时,使所述计算机执行上述方法。
本发明还提供一种计算机设备,包括存储器、处理器及存储在所述存储器上的并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现上述方法。
本发明的有益效果是:可对不同目标位置有不同局部内容的配置文件进行统一分发,减少维护集群软件配置文件的工作量,同时减少手工重复修改而出错的概率,提高分发文件的速度。
附图说明
图1为本发明实施例提供的一种集群应用文件更新方法的流程图;
图2为本发明实施例提供的另一种集群应用文件更新方法的流程图图;
图3为本发明实施例提供的一种集群应用文件更新***的流程图图;
图4为本发明实施例提供的另一种集群应用文件更新***的流程图图。
具体实施方式
以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
图1为本发明实施例提供的一种集群应用文件更新方法的流程图,如图1所示,该方法包括:
101.逐个遍历部署位置文件列表中记录的位置ID和对应的部署位置;
具体的,部署位置文件列表(deploy_pos.txt)是一个文本文件,一行一个部署位置,各列含义分别是:位置ID,主机ip和端口,目标目录,以pubkey-ssh方式登录对端主机的私钥文件路径。具体格式如下:<pos_id>,<host-port>,<host-user>,<target-path>,<private_key_file>
102.读入当前配置文件对应的属性配置文件的文件内容,并解析成按位置ID分组的配置变量值列表;
具体的,对不同目标位置有不同局部内容的配置文件<conf-file>,在同一目录下存在一个同样文件名+”.proplist”的属性配置文件<conf-file>.proplist,这个文件保存各部署点差异的配置信息,以json格式保存。其中每个部署位置pos_id下对应需要配置的变量名和对应的变量值。
属性配置文件示例格式如下:
{
“<pos_id-1>”:{“<prop-name1>”:”<prop-value1>”,“<prop-name2>”:”<prop-value2>”,…},
“<pos_id-2>”:{“<prop-name1>”:”<prop-value1>”,“<prop-name2>”:”<prop-value2>”,…},
…
}
每一个属性配置文件中的位置ID,即pos_id要求与deploy_pos.txt中的pos_id一一对应,以便后续步骤中为每个部署位置通过填充变量生成差异化的配置文件。
103.分别按照每个位置ID将当前配置文件的文件内容中的变量值替换为对应的配置变量值列表中的配置变量值,并生成待发送文件;
配置文件<conf-file>格式依据不同的集群应用各自不同,需要在原有文件的基础上进行调整,在文件中需要差异处理的位置配置为以#::#包围的变量名,通过比对配置文件中配置后的变量名和配置变量值列表中的变量名,比对成功后,将配置文件中变量名的的变量值替换为中配置变量值列表中对应的变量名的变量值即可。对于每个位置ID,均按照上述过程生成相应的待发送文件。其中,对配置文件中的变量替换,可以采用字符串遍历匹配的方式,也可以采用开源的模板替换软件模块,简化替换过程。
示例格式如下(局部):
ble.id.seq=#:ble_id_seq:#
zookeeper.ble.path.temp=/idmm/ble_bak
ble.default.priority=100
ble.request.timeout=60000
netty.listen.hostname=0.0.0.0
104.按部署位置分发待发送文件。
具体的,对于每个待分发文件,根据部署位置列表,按照其配置的位置逐个以scp分发。具体过程是,以scp连接pos_id对应的主机地址,然后发送待发送文件到pos_id对应的目标目录。
本发明实施例提供的一种集群应用文件更新方法,可对不同目标位置有不同局部内容的配置文件进行统一分发,减少维护集群软件配置文件的工作量,同时减少手工重复修改而出错的概率,提高分发文件的速度。
可选地,作为本发明的一个实施例,如图2所示,该方法包括:
201.读取部署文件列表,逐行读取其中每个配置文件的文件路径和第一修改时间;
具体的,部署文件列表(deploy_files.txt)是一个文本文件,每一行记录一个配置文件,第一列是带相对路径的文件名,第二列为保存的文件修改时间戳记,示例格式如下:path/to/file<timestamp of file last modified>
202.检查当前配置文件的文件路径下是否存在与配置文件对应的属性配置文件;
具体的,在配置文件的文件路径下,查找是否存在文件名与配置文件相同,但带有“.proplist”的属性配置文件。
203.如果存在对应的属性配置文件,则分别取当前配置文件和对应的属性配置文件的最后修改时间,将其中最晚的时间作为第二修改时间;如果不存在对应的属性配置文件,则直接获取当前配置文件的最后修改时间作为第二修改时间;
204.如果第一修改时间不早于第二修改时间,则跳转至步骤205;如果第一修改时间早于第二修改时间,则将当前配置文件的文件路径和第二修改时间存入待分发文件列表;
具体的,如果第一修改时间不早于第二修改时间,则说明该修改文件不是最新修改的文件,继续读取部署文件列表中下一个配置文件的文件路径和第一修改时间,通过上述步骤,即可将配置文件的文件路径,以及该配置文件与其对应的属性配置文件(如果存在)中最晚的真实修改时间存入待分发文件列表。
205.判断部署文件列表中所有配置文件是否遍历结束,若是则执行步骤206,否则返回步骤201;
206.逐个遍历部署位置文件列表中记录的位置ID和对应的部署位置;
207.逐行读取待分发文件列表中配置文件的文件路径和第二修改时间;
208.检查当前配置文件的文件路径下是否存在对应的属性配置文件;
209.如果当前配置文件的文件路径下存在对应的属性配置文件,则执行步骤210;如果当前配置文件的文件路径下不存在对应的属性配置文件,则将当前配置文件作为待发送文件;
210.读入当前配置文件对应的属性配置文件的文件内容,并解析成按位置ID分组的配置变量值列表;
211.分别按照每个位置ID将当前配置文件的文件内容中的变量值替换为对应的配置变量值列表中的配置变量值,并生成待发送文件;
212.按部署位置分发待发送文件;
213.判断待分发文件列表中所有配置文件是否遍历结束,若是则执行步骤214,否则返回步骤207;
214.更新部署文件列表中所有配置文件的第一修改时间。
如图3所示为本发明实施例提供的一种集群应用文件更新***,该***中的各个模块的功能原理已在前述内容中进行了详细介绍,以下不再赘述。
该***包括:
遍历模块,用于逐个遍历部署位置文件列表中记录的位置ID和对应的部署位置;
解析模块,用于读入当前配置文件对应的属性配置文件的文件内容,并解析成按位置ID分组的配置变量值列表;
生成模块,用于分别按照每个位置ID将当前配置文件的文件内容中的变量值替换为对应的配置变量值列表中的配置变量值,并生成待发送文件;
分发模块,用于按部署位置分发待发送文件。
可选地,在该实施例中,如图2所示,该***还包括:
读取模块,用于在解析模块读入当前配置文件对应的属性配置文件的文件内容之前,读取部署文件列表,逐行读取其中每个配置文件的文件路径和第一修改时间;
第一检查模块,用于检查当前配置文件的文件路径下是否存在与配置文件对应的属性配置文件;
第一比较模块,用于如果存在对应的属性配置文件,则分别取当前配置文件和对应的属性配置文件的最后修改时间,将其中最晚的时间作为第二修改时间;
第二比较模块,用于如果第一修改时间不早于第二修改时间,则读取部署文件列表中下一个配置文件的文件路径和第一修改时间;如果第一修改时间早于第二修改时间,则将当前配置文件的文件路径和第二修改时间存入待分发文件列表。
可选地,在该实施例中,如图2所示,该***还包括:
第二检查模块,用于在遍历完部署文件列表中所有配置文件之后,逐行读取待分发文件列表中配置文件的文件路径和第二修改时间,检查当前配置文件的文件路径下是否存在对应的属性配置文件;
解析模块,用于如果当前配置文件的文件路径下存在对应的属性配置文件,则读入当前配置文件对应的属性配置文件的文件内容,并解析成按位置ID分组的配置变量值列表。
可选地,在该实施例中,第一比较模块,还用于如果当前配置文件的文件路径下不存在对应的属性配置文件,则直接获取当前配置文件的最后修改时间作为第二修改时间,将当前配置文件作为待发送文件。
可选地,在该实施例中,如图2所示,该***还包括:
更新模块,用于更新部署文件列表中所有配置文件的第一修改时间。
本发明还提供一种计算机可读存储介质,包括指令,当指令在计算机上运行时,使计算机执行上述方法实施例中的方法步骤;或者存储上述***实施例的各个软件模块对应的指令。
本发明还提供一种计算机设备,包括存储器、处理器及存储在存储器上的并可在处理器上运行的计算机程序,处理器执行程序时实现上述方法实施例中的方法步骤。
一个应用本发明的具体实例如下:
在电信业务支撑***里,部署的自有消息中间件应用集群,其配置文件中有对oracle的连接参数,并且oracle采用了一库多实例部署模式,每一个客户端配置参数中要求以fail-over的方式将全部实例地址都配置上,但为了能令各实例有较均衡的访问数量,还要求各个集群节点上的地址列表的顺序轮换交叉,因此使各位置的配置文件有了差异。
实际的部署配置目录结构如下:
./config/ble:
server-ble-oracle.properties server-ble.xml
logback.xml server-ble-jdbc.xml
server-ble-oracle.properties.proplist
./config/broker:
authorization.xml server-oracle.properties.proplist
server-oracle.properties spring-jdbc-ble-not-found.xml
spring-metrics.xml
其中存在两个按分发位置有不同局部内容的文件,config/ble/server-ble-oracle.properties和config/broker/server-oracle.properties,在各自目录下有对应相同文件名并加上.proplist后缀的文件,该文件中既保存了要替换对应配置文件中的变量的参数。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种集群应用文件更新方法,其特征在于,包括:
S1.逐个遍历部署位置文件列表中记录的位置ID和对应的部署位置;
S2.读入当前配置文件对应的属性配置文件的文件内容,并解析成按所述位置ID分组的配置变量值列表;
S3.分别按照每个所述位置ID将所述当前配置文件的文件内容中的变量值替换为对应的所述配置变量值列表中的配置变量值,并生成待发送文件;
S4.按所述部署位置分发所述待发送文件。
2.根据权利要求1所述的方法,其特征在于,在执行步骤S2之前还包括:
Sa.读取部署位置文件列表,逐行读取其中每个配置文件的文件路径和第一修改时间;
Sb.检查所述当前配置文件的文件路径下是否存在与所述当前配置文件对应的属性配置文件;
Sc.如果存在对应的属性配置文件,则分别取所述当前配置文件和对应的所述属性配置文件的最后修改时间,将其中最晚的时间作为第二修改时间;
Sd.如果所述第一修改时间不早于所述第二修改时间,则读取所述部署位置文件列表中下一个配置文件的文件路径和第一修改时间;如果所述第一修改时间早于所述第二修改时间,则将所述当前配置文件的文件路径和第二修改时间存入待分发文件列表;
Se.循环执行步骤Sa至Sd,直至遍历完所述部署位置文件列表中所有配置文件。
3.根据权利要求2所述的方法,其特征在于,在步骤Se之后还包括:
Sf.逐行读取所述待分发文件列表中配置文件的文件路径和第二修改时间,检查所述当前配置文件的文件路径下是否存在对应的属性配置文件;
Sg.如果所述当前配置文件的文件路径下存在对应的属性配置文件,则执行步骤S2至S4;
Sh.循环执行步骤Sf和Sg,直至遍历完所述待分发文件列表中所有配置文件。
4.根据权利要求2所述的方法,其特征在于,还包括:
如果所述当前配置文件的文件路径下不存在对应的属性配置文件,则直接获取所述当前配置文件的最后修改时间作为第二修改时间,将所述当前配置文件作为待发送文件。
5.根据权利要求3或4所述的方法,其特征在于,在步骤Sh之后,还包括:
Si.更新所述部署位置文件列表中所有配置文件的第一修改时间。
6.一种集群应用文件更新***,其特征在于,包括:
遍历模块,用于逐个遍历部署位置文件列表中记录的位置ID和对应的部署位置;
解析模块,用于读入当前配置文件对应的属性配置文件的文件内容,并解析成按所述位置ID分组的配置变量值列表;
生成模块,用于分别按照每个所述位置ID将所述当前配置文件的文件内容中的变量值替换为对应的所述配置变量值列表中的配置变量值,并生成待发送文件;
分发模块,用于按所述部署位置分发所述待发送文件。
7.根据权利要求6所述的***,其特征在于,还包括:
读取模块,用于在所述解析模块读入当前配置文件对应的属性配置文件的文件内容之前,读取部署位置文件列表,逐行读取其中每个配置文件的文件路径和第一修改时间;
第一检查模块,用于检查所述当前配置文件的文件路径下是否存在与所述配置文件对应的属性配置文件;
第一比较模块,用于如果存在对应的属性配置文件,则分别取所述当前配置文件和对应的所述属性配置文件的最后修改时间,将其中最晚的时间作为第二修改时间;
第二比较模块,用于如果所述第一修改时间不早于所述第二修改时间,则读取所述部署位置文件列表中下一个配置文件的文件路径和第一修改时间;如果所述第一修改时间早于所述第二修改时间,则将所述当前配置文件的文件路径和第二修改时间存入待分发文件列表。
8.根据权利要求7所述的***,其特征在于,还包括:
第二检查模块,用于在遍历完所述部署位置文件列表中所有配置文件之后,逐行读取所述待分发文件列表中配置文件的文件路径和第二修改时间,检查所述当前配置文件的文件路径下是否存在对应的属性配置文件;
所述解析模块,用于如果所述当前配置文件的文件路径下存在对应的属性配置文件,则读入当前配置文件对应的属性配置文件的文件内容,并解析成按所述位置ID分组的配置变量值列表。
9.一种计算机可读存储介质,包括指令,其特征在于,当所述指令在计算机上运行时,使所述计算机执行根据权利要求1-5任一项所述的方法。
10.一种计算机设备,包括存储器、处理器及存储在所述存储器上的并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1-5任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910227239.5A CN109947451B (zh) | 2019-03-25 | 2019-03-25 | 一种集群应用文件更新方法、***、介质及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910227239.5A CN109947451B (zh) | 2019-03-25 | 2019-03-25 | 一种集群应用文件更新方法、***、介质及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109947451A CN109947451A (zh) | 2019-06-28 |
CN109947451B true CN109947451B (zh) | 2022-03-15 |
Family
ID=67011396
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910227239.5A Active CN109947451B (zh) | 2019-03-25 | 2019-03-25 | 一种集群应用文件更新方法、***、介质及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109947451B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111666128B (zh) * | 2020-05-25 | 2023-07-04 | 北京思特奇信息技术股份有限公司 | 一种容器集群组建***及方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE3068853D1 (en) * | 1979-11-06 | 1984-09-13 | Frederick Electronics Corp | A high-speed time share processor for use in a data processing system |
CN102662705A (zh) * | 2012-03-31 | 2012-09-12 | 中国工商银行股份有限公司 | 一种对计算机集群的***环境进行升级的***及方法 |
CN104615466A (zh) * | 2015-02-05 | 2015-05-13 | 广州亦云信息技术有限公司 | 一种云平台部署方法和*** |
-
2019
- 2019-03-25 CN CN201910227239.5A patent/CN109947451B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE3068853D1 (en) * | 1979-11-06 | 1984-09-13 | Frederick Electronics Corp | A high-speed time share processor for use in a data processing system |
CN102662705A (zh) * | 2012-03-31 | 2012-09-12 | 中国工商银行股份有限公司 | 一种对计算机集群的***环境进行升级的***及方法 |
CN104615466A (zh) * | 2015-02-05 | 2015-05-13 | 广州亦云信息技术有限公司 | 一种云平台部署方法和*** |
Non-Patent Citations (1)
Title |
---|
"集群文件服务***中的负载均衡算法的研究";刘恩海等;《计算机工程与设计》;20131008;第34卷(第8期);第2754-2758页 * |
Also Published As
Publication number | Publication date |
---|---|
CN109947451A (zh) | 2019-06-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11249728B2 (en) | System and method for generating an application structure for an application in a computerized organization | |
US9996333B2 (en) | Apparatus and method for automating the installation and configuration of infrastructure | |
US9697066B2 (en) | Method for processing data quality exceptions in a data processing system | |
CN112217656B (zh) | Sd-wan***中的网络设备的配置信息同步方法和装置 | |
US10243919B1 (en) | Rule-based automation of DNS service discovery | |
US8914490B2 (en) | Automated discovery and procurement of management information bases (MIBs) | |
EP2989543A1 (en) | Method and device for updating client | |
CN112906054A (zh) | 多租户的数据库隔离方法、装置及电子设备 | |
CN112702195A (zh) | 网关配置方法、电子设备及计算机可读存储介质 | |
CN112231230A (zh) | 一种测试用例管理方法、装置、电子设备及存储介质 | |
US8336057B2 (en) | Method and system for automatically generating message queue scripts | |
US7822836B1 (en) | System and method for automated discovery of vendor profiles in management information bases (MIBs) | |
US8539048B2 (en) | Electronic device and method for loading configuration files using the same | |
CN108228197B (zh) | 一种在集群中安装软件的方法和装置 | |
CN109947451B (zh) | 一种集群应用文件更新方法、***、介质及设备 | |
US20170237687A1 (en) | Resource trees by management controller | |
US11775643B2 (en) | Method and system for labeling object and generating security policy of operating system | |
CN110493326B (zh) | 基于zookeeper管理集群配置文件的***和方法 | |
CN110083509B (zh) | 一种日志数据的规整方法及装置 | |
US11782763B2 (en) | Resolution of tickets in a multi-tenant environment | |
CN111132121B (zh) | 信息处理方法和网络仓库功能nrf网元 | |
US20240146775A1 (en) | Templated document stream integration of checklist data for cyberthreat remediation | |
US20240028346A1 (en) | Linking kubernetes resources with underlying cloud infrastructure | |
US20230401045A1 (en) | Bases for pattern-based cloud computing | |
US20200236163A1 (en) | Scale out network-attached storage device discovery |
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 |