CN102523124B - 一种cdn网络中批量处理大量主机的方法及装置 - Google Patents
一种cdn网络中批量处理大量主机的方法及装置 Download PDFInfo
- Publication number
- CN102523124B CN102523124B CN201110442024.9A CN201110442024A CN102523124B CN 102523124 B CN102523124 B CN 102523124B CN 201110442024 A CN201110442024 A CN 201110442024A CN 102523124 B CN102523124 B CN 102523124B
- Authority
- CN
- China
- Prior art keywords
- task
- main frame
- description file
- order
- destination host
- 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
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种CDN网络中批量处理大量主机的方法,应用于CDN网络主机运维技术领域。该方法包括:获取任务描述文件,确定待执行的任务,获取需要执行所述任务的主机清单;根据生成的工作进程的数量从所述主机清单中获取对应数量的目标主机,并将目标主机的登陆信息分别推送至每个空闲工作进程;在接收到任务执行结果后,判断主机清单中提供的主机是否还有未处理的,如果有,则获取任意一个未处理的主机的登陆信息推送至该工作进程。本发明提供的方法和装置直接接收SSH协议返回的数据包,避免了现有技术中难以认定命令输出内容的边界的问题。
Description
技术领域
本发明涉及CDN网络主机运维技术领域,尤其涉及一种CDN网络中批量处理大量主机的方法及装置。
背景技术
处于CDN网络中的各种主机之间,经常需要通过SSH(Secure Shell)协议来远程登录进行操作。SSH协议守护进程sshd可以对操作人员发起的会话进行认证。在会话通过认证后,可反复接受操作人员输入的命令,执行并输出执行结果。
CDN网络主机运维人员经常通过SSH协议来安装软件、查看设备运行时状态、诊断并修复异常。典型的工作方式是输入一个命令,查看其输出结果,从中得到一些有用的信息并根据得到的信息进行判断,根据判断结果来确定下一步需要输入的命令,如此反复最终完成本次会话。
在由大量主机构成的CDN网络环境中,经常存在需要在大量主机上进行处理的任务。比如在五千台主机上安装新软件A,或者在七千台主机上检查软件B的版本号,再或者在三千台主机上查看并核对某个文件的md5摘要信息。
现有的解决方案通常包括:SecureCRT/XShell等模拟终端软件提供的交互式的批量操作功能,或者基于expect的自动化脚本,以及在Open SSH client或其它SSH客户端软件之上进行的包裹。
其中,方法一,模拟终端软件本质上是一个带有GUI的交互式工作环境,模拟终端软件将用户的桌面工作台伪装成一个Unix/Linux终端,允许用户通过SSH协议来管理远程主机。一些优秀的模拟终端软件如SecureCRT/Xshell等为了简化用户操作,实现了这样的功能:允许用户一次性地在数量不多的多台主机上批量地发送一个命令字符串,如果恰巧该主机正打开了一个活动的Shell,那么这些命令字符串就会被当作命令来执行。
方法二,基于expect的自动化脚本,则是另外一种软件,它允许用户书写一个脚本,来和另一个交互式的软件进行程序化的对话。expect通过用户书写的脚本来了解这个交互式的软件可能会有哪些输出文字,并在遇到特定的输出文字时,触发相应的动作。如果这个交互式的软件恰巧就是Open SSH client,那么expect就可以代替人工对远程主机进行管理操作。
方法三,SecureCRT/Xshell等模拟终端软件可以在数量不多(一般不能超过一百台)的主机上批量地发送一个命令字符串,如果恰巧该主机正打开了一个活动的Shell,那么这些命令字符串就会被当作命令来执行,但这类软件大多都不提供一个收集执行输出结果的方式。并且这类软件兼容性比较低。
方法四,基于expect或者Open SSH Client等软件之上进行包裹的方式是业界流行的做法。但这种方案有三个较大的缺点:一,性能低下,由于这种方式通常需要为每台主机启动一个或数个子进程,因此性能存在瓶颈,难以实现较高程度的并发。二,难以认定命令输出内容的边界,由于这种方案是通过对全部输出内容进行文字匹配来得到每个命令的输出内容,因此对于命令输出中包含有控制字符的情形,或者命令提示符格式不统一(不规范)的情形,或者命令输出内容和命令提示符就连经验丰富的工程师都难以分辨的情形,都无法进行准确的识别。三,这种方案仅能提供到设备上执行命令的方法,难以进一步开发根据命令输出进行诊断的功能。
发明内容
本发明提供一种CDN网络中批量处理大量主机的方法,用于解决现有技术中方对于命令输出中包含有控制字符的情形,或者命令提示符格式不统一的情形,无法认定命令输出内容的边界的问题。
一种CDN网络中批量处理大量主机的方法,包括:
获取任务描述文件,确定待执行的任务,获取需要执行所述任务的主机清单,该主机清单中包括主机的登录信息;
根据生成的工作进程的数量从所述主机清单中获取对应数量的目标主机,并将目标主机的登陆信息分别推送至每个空闲工作进程,使空闲工作进程通过SSH协议到目标主机执行任务描述文件中包括的任务;
在接收到任务执行结果后,判断主机清单中提供的主机是否还有未处理的,如果有,则获取任意一个未处理的主机的登陆信息推送至该工作进程。
一种CDN网络中批量处理大量主机的装置,包括:
预处理模块,用于获取任务描述文件,确定待执行的任务,获取需要执行所述任务的主机清单,该主机清单中包括主机的登录信息;
任务执行模块,用于根据生成的工作进程的数量从所述主机清单中获取对应数量的目标主机,并将目标主机的登陆信息分别推送至每个空闲工作进程,使空闲工作进程通过SSH协议到目标主机执行任务描述文件中包括的任务;在接收到任务执行结果后,判断主机清单中提供的主机是否还有未处理的,如果有,则获取任意一个未处理的主机的登陆信息推送至该工作进程。
本发明实施例提供的方法,直接接收SSH返回的数据包,可以清楚方便的认定命令输出内容的边界。
附图说明
图1为本发明实施例一种CDN网络中批量处理大量主机的方法的流程图;
图2为本发明实施例一种CDN网络中批量处理大量主机的装置的结构示意图。
具体实施方式
本发明实施例提供一种CDN网络中批量处理大量主机的方法,该方法包括:获取任务描述文件,确定待执行的任务,获取需要执行所述任务的主机清单,该主机清单中包括主机的登录信息;根据生成的工作进程的数量从所述主机清单中获取对应数量的目标主机,并将目标主机的登陆信息分别推送至每个空闲工作进程,使空闲工作进程通过SSH协议到目标主机执行任务描述文件中包括的任务;在接收到任务执行结果后,判断主机清单中提供的主机是否还有未处理的,如果有,则获取任意一个未处理的主机的登陆信息推送至该工作进程。
如图1所示,本发明实施例提供一种CDN网络中批量处理大量主机的方法,具体可以通过以下步骤实现:
步骤101,获取任务描述文件,确定待执行的任务,获取需要执行所述任务的主机清单,该主机清单中包括主机的登录信息;
在本发明实施例中,根据所需执行任务的繁易程度,获取任务描述文件的方式可以是以下几种方式:
(1)如果只需要输入一条命令即可实现,即任务描述文件为一条执行命令,则通过命令行输入目标主机待执行的任务。如:获取某一个安装程序的版本号,则可直接通过命令行的形式输入获取版本号的命令,获取安装程序的版本号。
(2)如果需要执行的命令较多,且多个需要执行的命令具有一定的逻辑顺序,则可根据所述命令的逻辑顺序编写任务脚本。在获取任务描述文件时,则指定任务脚本,然后从指定的任务脚本中获取任务描述文件;
(3)因为系统中某些任务需要反复的执行,则生成的任务脚本会存在重复应用的情况。根据该种情况,则本发明实施中还可将编写的脚本存入数据库中,如果需要使用某一个任务脚本时,则可通过网络套接字从数据库中获取存储的任务脚本,并从获取到的任务脚本中获取任务描述文件。
步骤102,根据所述任务描述文件中的任务参数,生成多个工作进程;
在具体的应用中,需要检测主机可能会是几百台到几千台的,在不能不能每台主机都分配一个对应的工作进程的情况下,则需要设置对应的任务参数确定某一数量目标主机的情况下需要生成的工作进程数量。
步骤103,根据工作进程的数量从所述主机清单中获取对应数量的目标主机;
步骤104,将目标主机的登陆信息分别推送至每个空闲工作进程,使空闲工作进程通过SSH协议到目标主机执行任务描述文件中包括的任务;
在本发明实施例中,空闲工作进程通过SSH协议到目标主机执行所述任务包括:
接收推送来的主机登陆信息,并登录该主机;
提取任务描述文件中的第一个命令,并通过SSH协议到远程主机执行该命令,并获取命令输出结果;
对所述命令输出结果进行判断,并根据判断结果,确定执行下一个命令或将输出所述命令输出结果。
每个工作进程在执行完任务描述文件中包括的所有命令后,才将最终的执行结果输出。避免了现有技术中,如果需要不断的输入命令控制整个流程
步骤105,在接收到任务执行结果后,判断主机清单中提供的主机是否还有未处理的,如果有,则获取任意一个未处理的主机的登陆信息,并转入步骤104。
如图2所示,根据上述方法本发明实施例还提供一种CDN网络中批量处理大量主机的装置,包括:
预处理模块201,用于获取任务描述文件,确定待执行的任务,获取需要执行所述任务的主机清单,该主机清单中包括主机的登录信息;
在本发明实施例中,所述预处理模块201获取任务描述文件的方式包括:
任务描述文件为一条执行命令,则通过命令行输入目标主机待执行的任务;
从指定的任务脚本中获取任务描述文件,该任务脚本中包括多个按照预设逻辑顺序设置的执行命令;
通过网络套接字从数据库中获取存储的任务脚本,并从获取到的任务脚本中获取任务描述文件。
任务执行模块202,用于根据生成的工作进程的数量从所述主机清单中获取对应数量的目标主机,并将目标主机的登陆信息分别推送至每个空闲工作进程,使空闲工作进程通过SSH协议到目标主机执行任务描述文件中包括的任务;在接收到任务执行结果后,判断主机清单中提供的主机是否还有未处理的,如果有,则获取任意一个未处理的主机的登陆信息推送至该工作进程。
所述任务执行模块202空闲工作进程通过SSH协议到目标主机执行所述任务包括:
接收推送来的主机登陆信息,并登录该主机;
提取任务描述文件中的第一个命令,并通过SSH协议到远程主机执行该命令,并获取命令输出结果;
对所述命令输出结果进行判断,并根据判断结果,确定执行下一个命令或将输出所述命令输出结果。
为了防止工作进程过多给系统带来压力,或者工作进程过少不能满足系统的需求,则本发明实施例还包括:
工作进程生成模块203,用于根据所述任务描述文件中的任务参数,生成多个工作进程。
本发明实施例提供的方法和装置相对于现有技术中的方案,处理主机数量数以千计时,用本方法平均每秒钟能处理大约120台主机,具有高效的处理性能。
另外,所提供的方法和装置并没有针对某个业务做具体的设计。因此本方法适用范围广。既可以通过命令行批量地执行简单的命令,也可以通过灵活的脚本控制来实现复杂的业务,还可以通过网络套接字与其它业务系统(比如自动化巡检系统)联动,为其提供底层支持。
本发明所述的方法并不限于具体实施方式中所述的实施例,本领域技术人员根据本发明的技术方案得出其它的实施方式,同样属于本发明的技术创新范围。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (6)
1.一种CDN网络中批量处理大量主机的方法,其特征在于,包括:
获取任务描述文件,确定待执行的任务,获取需要执行所述任务的主机清单,该主机清单中包括主机的登录信息;
根据所述任务描述文件中的任务参数,生成多个工作进程;
根据生成的工作进程的数量从所述主机清单中获取对应数量的目标主机,并将目标主机的登陆信息分别推送至每个空闲工作进程,使空闲工作进程通过SSH协议到目标主机执行任务描述文件中包括的任务;
在接收到任务执行结果后,判断主机清单中提供的主机是否还有未处理的,如果有,则获取任意一个未处理的主机的登陆信息推送至该工作进程。
2.如权利要求1所述的方法,其特征在于,所述获取任务描述文件的方式包括:
任务描述文件为一条执行命令,则通过命令行输入目标主机待执行的任务;
从指定的任务脚本中获取任务描述文件,该任务脚本中包括多个按照预设逻辑顺序设置的执行命令;
通过网络套接字从数据库中获取存储的任务脚本,并从获取到的任务脚本中获取任务描述文件。
3.如权利要求1所述的方法,其特征在于,所述空闲工作进程通过SSH协议到目标主机执行所述任务包括:
接收推送来的主机登陆信息,并登录该主机;
提取任务描述文件中的第一个命令,并通过SSH协议到远程主机执行该命令,并获取命令输出结果;
对所述命令输出结果进行判断,并根据判断结果,确定执行下一个命令或将输出所述命令输出结果。
4.一种CDN网络中批量处理大量主机的装置,其特征在于,包括:
预处理模块,用于获取任务描述文件,确定待执行的任务,获取需要执行所述任务的主机清单,该主机清单中包括主机的登录信息;
工作进程生成模块,用于根据所述任务描述文件中的任务参数,生成多个工作进程;
任务执行模块,用于根据生成的工作进程的数量从所述主机清单中获取对应数量的目标主机,并将目标主机的登陆信息分别推送至每个空闲工作进程,使空闲工作进程通过SSH协议到目标主机执行任务描述文件中包括的任务;在接收到任务执行结果后,判断主机清单中提供的主机是否还有未处理的,如果有,则获取任意一个未处理的主机的登陆信息推送至该工作进程。
5.如权利要求4所述的装置,其特征在于,所述预处理模块获取任务描述文件的方式包括:
任务描述文件为一条执行命令,则通过命令行输入目标主机待执行的任务;
从指定的任务脚本中获取任务描述文件,该任务脚本中包括多个按照预设逻辑顺序设置的执行命令;
通过网络套接字从数据库中获取存储的任务脚本,并从获取到的任务脚本中获取任务描述文件。
6.如权利要求4所述的装置,其特征在于,所述任务执行模块空闲工作进程通过SSH协议到目标主机执行所述任务包括:
接收推送来的主机登陆信息,并登录该主机;
提取任务描述文件中的第一个命令,并通过SSH协议到远程主机执行该命令,并获取命令输出结果;
对所述命令输出结果进行判断,并根据判断结果,确定执行下一个命令或将输出所述命令输出结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110442024.9A CN102523124B (zh) | 2011-12-26 | 2011-12-26 | 一种cdn网络中批量处理大量主机的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110442024.9A CN102523124B (zh) | 2011-12-26 | 2011-12-26 | 一种cdn网络中批量处理大量主机的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102523124A CN102523124A (zh) | 2012-06-27 |
CN102523124B true CN102523124B (zh) | 2014-09-10 |
Family
ID=46293923
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110442024.9A Active CN102523124B (zh) | 2011-12-26 | 2011-12-26 | 一种cdn网络中批量处理大量主机的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102523124B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103024018A (zh) * | 2012-12-04 | 2013-04-03 | 北京蓝汛通信技术有限责任公司 | 一种在单台设备运行多cdn服务进程的方法及装置 |
CN105516256A (zh) * | 2015-11-27 | 2016-04-20 | 北京锐安科技有限公司 | Linux主机的批量命令运行方法和装置 |
CN108810174A (zh) * | 2018-08-08 | 2018-11-13 | 郑州云海信息技术有限公司 | 一种远程控制方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102012840A (zh) * | 2010-12-23 | 2011-04-13 | 中国农业银行股份有限公司 | 一种数据的批量调度方法和系统 |
CN102064966A (zh) * | 2010-12-29 | 2011-05-18 | 北京世纪互联工程技术服务有限公司 | 一种配置方法、服务器、设备和系统 |
CN102075358A (zh) * | 2010-12-31 | 2011-05-25 | 网宿科技股份有限公司 | 针对大规模服务器集群的内容分发和部署的系统和方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7096266B2 (en) * | 2001-01-08 | 2006-08-22 | Akamai Technologies, Inc. | Extending an Internet content delivery network into an enterprise |
-
2011
- 2011-12-26 CN CN201110442024.9A patent/CN102523124B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102012840A (zh) * | 2010-12-23 | 2011-04-13 | 中国农业银行股份有限公司 | 一种数据的批量调度方法和系统 |
CN102064966A (zh) * | 2010-12-29 | 2011-05-18 | 北京世纪互联工程技术服务有限公司 | 一种配置方法、服务器、设备和系统 |
CN102075358A (zh) * | 2010-12-31 | 2011-05-25 | 网宿科技股份有限公司 | 针对大规模服务器集群的内容分发和部署的系统和方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102523124A (zh) | 2012-06-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11822906B2 (en) | Industrial programming development with a converted industrial control program | |
CN107368365A (zh) | 云平台自动运维方法、系统、设备及存储介质 | |
US20070124189A1 (en) | Sustaining a fleet of configuration-controlled assets | |
US10608953B2 (en) | Platform with multiple execution engines | |
Ahmad et al. | A framework for architecture-driven migration of legacy systems to cloud-enabled software | |
US8996447B2 (en) | Decision service manager | |
US20170206483A1 (en) | Workflow storage, processing, management, and task creation system | |
CN114257609B (zh) | 用于提供工业信息服务的系统、方法和计算机可读介质 | |
McLennan et al. | HUBzero and Pegasus: integrating scientific workflows into science gateways | |
Masi et al. | Securing critical infrastructures with a cybersecurity digital twin | |
Lovas et al. | Orchestrated Platform for Cyber‐Physical Systems | |
CN102523124B (zh) | 一种cdn网络中批量处理大量主机的方法及装置 | |
CN117608825A (zh) | 基于多云管理平台的资源管理方法和相关设备 | |
US10467124B2 (en) | Certification process for cloud platform | |
Da Silva et al. | Workflows community summit: Tightening the integration between computing facilities and scientific workflows | |
US8301273B2 (en) | Method for providing functions in an industrial automation system, control program and industrial automation system | |
US11847923B2 (en) | Robust techniques for the collection and management of data from data sources in an unmanned aircraft systems (UAS) operations environment | |
US20180173740A1 (en) | Apparatus and Method for Sorting Time Series Data | |
Garcia et al. | Oil and gas upstream sector: The use of iec-61499 and opc | |
US10489867B2 (en) | Apparatus and method for deploying analytics | |
CN109582440A (zh) | 一种计算节点的安装方法及装置 | |
CN103401900A (zh) | 基于面向服务架构的快速部署应用方法 | |
MITSIAKI et al. | ENHANCING DEFECT TRACEABILITY AND DATA INTEGRITY IN INDUSTRY 4.0 USING BLOCKCHAIN TECHNOLOGY | |
US12001312B1 (en) | Data center monitoring and management operation for provisioning a data center asset using unstructured data | |
Baras et al. | Development of a Framework for CPS Open Standards and Platforms |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
PP01 | Preservation of patent right |
Effective date of registration: 20220225 Granted publication date: 20140910 |
|
PP01 | Preservation of patent right |