CN111338617A - 使用xml和python集中控制linux的方法 - Google Patents
使用xml和python集中控制linux的方法 Download PDFInfo
- Publication number
- CN111338617A CN111338617A CN202010118098.6A CN202010118098A CN111338617A CN 111338617 A CN111338617 A CN 111338617A CN 202010118098 A CN202010118098 A CN 202010118098A CN 111338617 A CN111338617 A CN 111338617A
- Authority
- CN
- China
- Prior art keywords
- command
- information
- program
- server
- acquiring
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/33—Intelligent editors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/35—Creation or generation of source code model driven
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供一种使用xml和python集中控制linux的方法,包含以下步骤:(1)双击程序启动文件会执行命令启动程序,开始执行Python程序;(2)设置环境信息并检查配置文件,若配置文件缺失或者格式错误则退出程序;(3)加载配置文件获取信息;(4)执行终端;(5)执行控制Linux远程服务器。本发明建立了一个通用的Python控制端和XML控制模型,XML编写者不需要关注Python控制端程序逻辑也可快速根据模型编写配置,给服务器集群维护者提供了一个控制终端可在实际应用中快速上手。
Description
技术领域
本发明涉及Linux控制技术领域,具体是使用xml和python集中控制linux的方法。
背景技术
当前IT行业中云服务、大数据服务需要大量的底层计算机集群支持,在这些计算机集群中运行着大量流行的Linux服务器操作系统,而Linux只作为内核其拥有众多的发行版本如Red Hat、Ubuntu、SUSE,这些发行版本往往环境各异。集中控制管理Linux服务器的方法有很多,采用何种通用易用的方案管理服务器是每个IT公司需要考虑的问题。
很多IT公司开发消息机制来控制各服务器中的程序,在众多Linux服务器中建立一个消息服务,由各服务器中进驻的消息接收程序来接收命令执行预设的程序。该方法开发过程复杂,需要接入消息服务接口开发,一般的各消息接收程序还需要对命令进行回馈,机器管理者才会获知命令执行情况;建设成本高,需要建立单独的消息服务,需要提前在被控制服务器中部署消息接收程序;维护成本高,消息服务和消息接收程序需要保证实时网络通信;灵活度低,业务需求发展往往需要升级消息接收程序的执行机制,整个集群升级程序往往过程缓慢。
发明内容
本发明针对上述问题,提供了一种使用xml和python集中控制linux的方法,减少开发过程,以尽量少的代码、命令即可快速完成对整个计算机集群的管理;减少建设成本,去掉不必要的中心服务和被控制服务器中的服务程序部署;使减少维护成本,在不需要操作集群服务器时不用与之建立通信;灵活度高,在有新的业务需求时可快速建立新的控制功能。
为达到上述目的,本发明采用以下技术方案:
使用xml和python集中控制linux的方法,包含以下步骤:
(1)双击程序启动文件会执行命令启动程序,开始执行Python程序;
(2)设置环境信息并检查配置文件,若配置文件缺失或者格式错误则退出程序;
(3)加载配置文件获取信息:
(3.1)遍历出global全局配置信息,获取所有config子节点信息,每个子节点包含id属性和value属性对应的信息;
(3.2)遍历出servers服务器配置信息,获取所有server子节点信息,获取标签id属性、name属性、ip属性、port属性、user属性、password属性对应的信息,判断是server否包含子节点,如果含有判断节点名称是不是param,是则获取标签id属性对应的信息和标签中的文字;
(3.3)遍历出exec命令组配置信息,获取所有group子节点信息,获取标签id属性、target属性对应的信息,获取具体操作命令行;
(4)执行终端
(4.1)让用户输入命令,获取输入命令,判断如果输入命令为空,让用户重新输入命令;
(4.2)解析输入命令,把输入的命令用空格分隔成数组,截取拼接命令,并存放;
(4.3)判断输入命令是否是内部定义的命令,是内部定义的命令则输出以下信息:
help:输出程序内部定义的命令;
list:列出配置的服务器信息;
exec:输出配置的启动程序命令;
reload:重新加载配置文件;
(4.4)判断输入的命令是否是配置文件命令组id的值(例:deploy),获取配置文件中对应的服务器id,判断对应的服务器是否为存在,不存在则需重新输入命令,检查通过即开始执行控制Linux远程服务器;
(5)执行控制Linux远程服务器
(5.1)获取服务器的配置信息,包括服务器用户名地址、端口、用户名、密码;
(5.2)检查命令组语句,循环配置文件定义的命令组获取命令信息,检查命令表达式,如果有命令表达式为空则提示命令表达式错误;再判断命令组需要的目录在目标服务器中是否存在,即获取所有类型为cd的命令,获取对应所有路径,判断该路径在目标服务器是否存在,如果不存在则提示错误;
(5.3)连接远程服务器并运行命令,循环遍历命令组信息,获取所有命令表达式开始执行,单个命令定义如下:
如果命令是confirm,则提示确认操作,如果输入为y,则运行程序,如果输入为n,则程序终止退出;
如果命令是cd,则进入对应的参数路径;
如果命令是run,则判断sudo参数是否为true,为true则以管理员的身份运行对应的程序命令,为false则以用户的身份运行对应的程序命令;
(5.4)在每个目标服务器中依次执行配置文件的命令至结束。
本发明与现有发明相比,具有以下优点及突出性效果:
本发明建立了一个通用的Python控制端和XML控制模型,XML编写者不需要关注Python控制端程序逻辑也可快速根据模型编写配置,给服务器集群维护者提供了一个控制终端可在实际应用中快速上手。
本发明适合大部分互联网公司,用户想减少操作服务器的时间和复杂程度,可以进行配置服务器一步操作,快速上手,根据预先设计好的操作,让用户输入指定的命令,避免经验不足的人操作服务器不当的情况。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
其中:
图1是本发明流程示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
参照图1,展示了本发明的程序的具体流程图,该使用xml和python集中控制linux的方法,包括以下过程:
(1)用户启动Python程序,Python控制端读取配置好的xml配置文件信息,xml配置文件设置相应的集群信息、服务器相关信息和相关的执行命令,Python控制端根据程序逻辑提供控制终端响应信息;
(2)用户在控制终端输入命令,Python控制端得到用户的命令信息,根据读取到的xml配置文件的详细信息去操作控制服务器集群;
(3)Python控制端根据服务器集群响应提供给控制终端展示给用户。
本发明中,要事先配置好xml配置文件信息,要切合具体应用场景,配置相应的的服务器命令和相关信息。
在实际应用中,程序逻辑应与配置之间的关系可以是有经验丰富的开发工程师建立,从而防止经验不足的人设计不当的情况,提高程序的性能和安全。
具体的例子,集群环境一步启动:
(1)用现有的启动脚本启动Python程序;
(2)修改config.xml配置文件;
(3)修改global全局配置信息,包括linux服务器默认用户名、默认密码、默认端口号;
(4)修改server服务器配置信息(集群设置多个),id表示服务器id(不可重复),ip表示服务器的ip地址,user表示服务器用户名,password表示服务器的密码;
(5)修改group命令组信息,id的参数表示在控制终端输入的执行命令,target参数表示服务器id信息,逗号隔开(设置的服务器id),<group>标签里面就是Python控制端让服务器执行的命令信息,按照顺序依次执行:
group命令组中的具体标签
<confirm>标签指确认操作,让用户输入y/n,来确定程序是否执行
<cd>/data</cd>标签指进入服务器/data目录
<run sudo="true">fuser-k*</run>标签指让服务器执行fuser-k*命令,sudo参数指是否需要管理员身份运行,true管理员身份运行,false普通身份运行。
(6)程序依次运行group命令组的命令行,如果命令组的target参数为多个服务器id,那么会在多个服务器上依次执行group命令组的命令行,直到全部执行完成。
显然,以上所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例,附图中给出了本申请的较佳实施例,但并不限制本申请的专利范围。本申请可以以许多不同的形式来实现,相反地,提供这些实施例的目的是使对本申请的公开内容的理解更加透彻全面。尽管参照前述实施例对本申请进行了详细的说明,对于本领域的技术人员来而言,其依然可以对前述各具体实施方式所记载的技术方案进行修改,或者对其中部分技术特征进行等效替换。凡是利用本申请说明书及附图内容所做的等效结构,直接或间接运用在其他相关的技术领域,均同理在本申请专利保护范围之内。
Claims (4)
1.使用xml和python集中控制linux的方法,其特征在于:包含以下步骤:
(1)双击程序启动文件会执行命令启动程序,开始执行Python程序;
(2)设置环境信息并检查配置文件,若配置文件缺失或者格式错误则退出程序;
(3)加载配置文件获取信息;
(4)执行终端;
(5)执行控制Linux远程服务器。
2.根据权利要求1所述的使用xml和python集中控制linux的方法,其特征在于:步骤(3)加载配置文件获取信息,具体包括以下步骤:
(3.1)遍历出global全局配置信息,获取所有config子节点信息,每个子节点包含id属性和value属性对应的信息;
(3.2)遍历出servers服务器配置信息,获取所有server子节点信息,获取标签id属性、name属性、ip属性、port属性、user属性、password属性对应的信息,判断是server否包含子节点,如果含有判断节点名称是不是param,是则获取标签id属性对应的信息和标签中的文字;
(3.3)遍历出exec命令组配置信息,获取所有group子节点信息,获取标签id属性、target属性对应的信息,获取具体操作命令行。
3.根据权利要求1所述的使用xml和python集中控制linux的方法,其特征在于:步骤(4)执行终端,具体包括以下步骤:
(4.1)让用户输入命令,获取输入命令,判断如果输入命令为空,让用户重新输入命令;
(4.2)解析输入命令,把输入的命令用空格分隔成数组,截取拼接命令,并存放;
(4.3)判断输入命令是否是内部定义的命令,是内部定义的命令则输出以下信息:
help:输出程序内部定义的命令;
list:列出配置的服务器信息;
exec:输出配置的启动程序命令;
reload:重新加载配置文件;
(4.4)判断输入的命令是否是配置文件命令组id的值(例:deploy),获取配置文件中对应的服务器id,判断对应的服务器是否为存在,不存在则需重新输入命令,检查通过即开始执行控制Linux远程服务器。
4.根据权利要求1所述的使用xml和python集中控制linux的方法,其特征在于:步骤(5)执行控制Linux远程服务器,具体包括以下步骤:
(5.1)获取服务器的配置信息,包括服务器用户名地址、端口、用户名、密码;
(5.2)检查命令组语句,循环配置文件定义的命令组获取命令信息,检查命令表达式,如果有命令表达式为空则提示命令表达式错误;再判断命令组需要的目录在目标服务器中是否存在,即获取所有类型为cd的命令,获取对应所有路径,判断该路径在目标服务器是否存在,如果不存在则提示错误;
(5.3)连接远程服务器并运行命令,循环遍历命令组信息,获取所有命令表达式开始执行,单个命令定义如下:
如果命令是confirm,则提示确认操作,如果输入为y,则运行程序,如果输入为n,则程序终止退出;
如果命令是cd,则进入对应的参数路径;
如果命令是run,则判断sudo参数是否为true,为true则以管理员的身份运行对应的程序命令,为false则以用户的身份运行对应的程序命令;
(5.4)在每个目标服务器中依次执行配置文件的命令至结束。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010118098.6A CN111338617A (zh) | 2020-02-26 | 2020-02-26 | 使用xml和python集中控制linux的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010118098.6A CN111338617A (zh) | 2020-02-26 | 2020-02-26 | 使用xml和python集中控制linux的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111338617A true CN111338617A (zh) | 2020-06-26 |
Family
ID=71181948
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010118098.6A Pending CN111338617A (zh) | 2020-02-26 | 2020-02-26 | 使用xml和python集中控制linux的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111338617A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114329103A (zh) * | 2021-12-22 | 2022-04-12 | 郑州畅想高科股份有限公司 | 一种运行揭示及lkj临时数据段间比对方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050278723A1 (en) * | 2004-06-14 | 2005-12-15 | Feinleib David A | System and method for remote administration from a windows client of computer systems running the Linux operating system |
CN103716188A (zh) * | 2013-12-20 | 2014-04-09 | 上海网达软件股份有限公司 | Linux服务器集群管理的管理和维护方法 |
CN103873279A (zh) * | 2012-12-13 | 2014-06-18 | 腾讯科技(深圳)有限公司 | 一种服务器管理方法,及装置 |
US9584378B1 (en) * | 2015-12-22 | 2017-02-28 | International Business Machines Corporation | Computer-implemented command control in information technology service environment |
CN110753090A (zh) * | 2019-09-20 | 2020-02-04 | 平安普惠企业管理有限公司 | 服务器集群的任务执行方法、装置、计算机设备及存储介质 |
-
2020
- 2020-02-26 CN CN202010118098.6A patent/CN111338617A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050278723A1 (en) * | 2004-06-14 | 2005-12-15 | Feinleib David A | System and method for remote administration from a windows client of computer systems running the Linux operating system |
CN103873279A (zh) * | 2012-12-13 | 2014-06-18 | 腾讯科技(深圳)有限公司 | 一种服务器管理方法,及装置 |
CN103716188A (zh) * | 2013-12-20 | 2014-04-09 | 上海网达软件股份有限公司 | Linux服务器集群管理的管理和维护方法 |
US9584378B1 (en) * | 2015-12-22 | 2017-02-28 | International Business Machines Corporation | Computer-implemented command control in information technology service environment |
CN110753090A (zh) * | 2019-09-20 | 2020-02-04 | 平安普惠企业管理有限公司 | 服务器集群的任务执行方法、装置、计算机设备及存储介质 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114329103A (zh) * | 2021-12-22 | 2022-04-12 | 郑州畅想高科股份有限公司 | 一种运行揭示及lkj临时数据段间比对方法 |
CN114329103B (zh) * | 2021-12-22 | 2023-10-24 | 郑州畅想高科股份有限公司 | 一种运行揭示及lkj临时数据段间比对方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109120678A (zh) | 用于分布式存储系统的服务托管的方法和装置 | |
US8151277B2 (en) | Method and system for dynamic remote injection of in-process agents into virtual machine based applications | |
US9298713B2 (en) | Executor for software configuration automation | |
EP2696532A2 (en) | Method, server and system for starting application | |
CN114115852A (zh) | 可视化服务编排方法、装置、设备及介质 | |
WO2022267675A1 (zh) | 中间件部署方法、装置、设备及存储介质 | |
WO2019242162A1 (zh) | 中间件安装方法、装置、计算机设备及存储介质 | |
US20100162227A1 (en) | Automation of Mainframe Software Deployment | |
US11169820B1 (en) | Managing an operating system to set up a computer association tool | |
CN112333096A (zh) | 一种微服务流量调度方法及相关组件 | |
US11381638B1 (en) | System and method for parallel execution of activites in an integration flow | |
CN108549542A (zh) | 一种文件部署方法、装置及设备 | |
US11533223B2 (en) | Systems and methods for network management | |
CN114780080A (zh) | 一种微前端集成方法、装置及监控方法 | |
CN112214227A (zh) | 一种边缘服务器镜像定制化及部署系统和方法 | |
CN113900670B (zh) | 集群服务器应用部署系统 | |
CN117170803A (zh) | 生成信创操作系统流水线的方法、电子设备及存储介质 | |
CN116414521A (zh) | 分布异构靶场的虚拟机远程命令交互方法、装置及介质 | |
CN111338617A (zh) | 使用xml和python集中控制linux的方法 | |
CN107463390B (zh) | 一种软件升级方法及升级服务器 | |
CN111124642A (zh) | 一种云管理平台可自定义的自动化流程方法及系统 | |
CN113590595A (zh) | 一种数据库多写方法、装置及相关设备 | |
CN113434155A (zh) | 一种混云模式下自动化部署系统 | |
US9207928B2 (en) | Computer-readable medium, apparatus, and methods of automatic capability installation | |
US20130262845A1 (en) | Method and system for generating a standardized system build file |
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 |