一种基于异构操作系统的脚本服务化方法,通过设置空闲shell进程池,和将随Agent软件启动而启动的若干个shell进程作为空闲shell进程放入空闲shell进程池中以等待执行脚本命令,能够提升在IT系统运维过程中Agent执行shell脚本命令的效率,控制Agent执行shell脚本命令时所占用的系统资源。本命令时所占用的系统资源。本命令时所占用的系统资源。
【技术实现步骤摘要】
一种基于异构操作系统的脚本服务化方法
[0001]本专利技术属于IT系统运维领域,涉及代理Agent管理执行脚本程序的方法,特别是一种基于异构操作系统的脚本服务化方法。
技术介绍
[0002]在IT系统运维过程中,每台被监控管理的计算机上都会安装Agent软件,用于和服务器或者proxy通讯交互,执行服务器发布的命令,对目标计算机进行监控管理。当服务器对Agent发布一个脚本执行命令时,目前的Agent实现方式是由Agent启动一个shell进程,由shell执行脚本命令。执行完脚本命令后,shell进程向Agent返回结果,然后退出。
[0003]目前的实现方案有以下问题:1)由于启动进程是一个耗费资源和时间的操作,Agent每次执行脚本程序时,都需要先启动一个shell进程,然后由shell执行脚本命令,命令执行结束后再关闭shell进程,使得脚本程序的执行效率比较低,需要花费更多的时间。2)当一小段时间里有大量的脚本程序需要Agent执行时,Agent同时启动多个shell进程执行脚本任务。当启动的shell进程过多时,会大量消耗被监控管理主机的CPU和内存资源,可能造成主机CPU和内存占用超出监控管理的设计限制,进而影响主机正常任务的执行。
技术实现思路
[0004]本专利技术针对现有技术的缺陷或不足,提供一种基于异构操作系统的脚本服务化方法。
[0005]本专利技术的技术解决方案如下:
[0006]一种基于异构操作系统的脚本服务化方法,其特征在于,在安装有Agent软件的被监控管理主机中设置空闲shell进程池,所述空闲shell进程池中包含已预先随所述Agent软件启动而启动的若干个shell进程,每个已预先启动的shell进程作为空闲shell进程在所述空闲shell进程池中等待Agent将其取出以执行脚本命令。
[0007]所述被监控管理主机通过Agent连接服务器,Agent内设置有脚本命令任务队列模块,从服务器传递来的脚本命令和Agent本地发起的脚本命令均首先进入脚本命令任务队列排队,Agent从队列头部取出脚本命令任务,从空闲shell进程池取出shell进程,把脚本命令任务提交给shell进程执行。
[0008]所述把脚本命令任务提交给shell进程执行包括Agent将脚本命令从shell进程标准输入接口传递给shell进程,先输入显示开始命令,再输入脚本命令,最后输入显示结束命令。
[0009]对于不同的操作系统都有对应的shell程序,使得脚本服务化方法具有普适性,以支持各种类型的操作系统。
[0010]所述被监控管理主机的操作系统为windows或linux或AIX或HP
‑
UX。
[0011]初始启动shell进程的数量由参数配置确定,服务器通过向Agent发布命令,修改参数的值。
[0012]服务器通过向Agent发布命令,联机修改shell进程的数量,由Agent新启动或者停止一定数量的shell进程,使得提供执行脚本命令服务的shell进程的数量和服务器命令指定的数量相同,Agent在停止shell进程时,只有进入空闲shell进程池的进程才会被停止,用于保证不中断正在执行的任务。
[0013]包括以下步骤:
[0014]步骤1,服务器把脚本程序文件下传给Agent;
[0015]步骤2,Agent把所述脚本程序文件保存到本地;
[0016]步骤3,服务器把脚本命令及参数传递给Agent后由Agent把接收到的脚本命令放入任务队列,Agent将定时执行等本地发起的脚本命令放入任务队列;
[0017]步骤4,Agent设置专门的线程池等待任务队列中任务到来,一旦任务到来,取出任务,从空闲shell进程池中取出一个空闲shell进程,如没有空闲shell进程就等待;
[0018]步骤5,Agent将脚本命令从shell进程标准输入接口传递给shell进程,先输入显示开始命令,再输入脚本命令,最后输入显示结束命令;
[0019]步骤6,Agent从shell进程标准输出接口读取输出信息,确认任务执行状态,当读到显示结束命令的信息时,说明脚本命令已经执行完毕,将shell进程返回空闲shell进程池,将执行结果登记日志并返回脚本命令发起方。
[0020]本专利技术的技术效果如下:本专利技术一种基于异构操作系统的脚本服务化方法,通过设置空闲shell进程池,和将随Agent软件启动而启动的若干个shell进程作为空闲shell进程放入空闲shell进程池中以等待执行脚本命令,能够提升在IT系统运维过程中Agent执行shell脚本命令的效率,控制Agent执行shell脚本命令时所占用的系统资源。
[0021]本专利技术的有益效果如下:1、由于预先启动了shell进程,不用每执行一个shell程序都启动、关闭一次shell进程,会提升脚本程序的执行效率,经测试,在一定的测试环境和测试案例下,执行效率有10倍的提升。2、由于脚本命令先排队,然后分配给固定数量的shell进程执行,同时执行脚本任务的shell进程数量不会因大量任务同时到来而膨胀,起到限流作用,使得系统资源占用能保持在合理区间范围内。3、由于不同的操作系统都有对应的shell程序,使得脚本服务化方法具有普适性,能够支持各种类型的操作系统。
附图说明
[0022]图1是实施本专利技术一种基于异构操作系统的脚本服务化方法所形成的包括服务器和被监控管理主机之间的架构示意图。图1中的被监控管理主机中安装有Agent软件,和随所述Agent软件启动而启动的若干个shell进程以等待执行脚本命令,所述被监控管理主机通过Agent连接服务器/proxy,Agent中设置有脚本命令任务队列模块,所述若干个shell进程均作为空闲shell进程进入空闲shell进程池中,Agent通过从所述空闲shell进程池取出空闲shell进程执行从所述脚本命令任务队列模块取出的脚本命令任务。
[0023]图2是实施本专利技术一种基于异构操作系统的脚本服务化方法的流程图。图2中包括步骤1,服务器把脚本程序文件下传给Agent;步骤2,Agent把接收到的文件保存到本地;步骤3,服务器把脚本命令及参数传递给Agent后由Agent把接收到的脚本命令放入任务队列,Agent将定时执行等本地发起的脚本命令放入任务队列;步骤4,Agent设置专门的线程池等待任务队列中任务到来,一旦任务到来,取出任务,从空闲shell进程池中取出一个空闲
shell进程,如没有空闲shell进程就等待;步骤5,Agent将脚本命令从shell进程标准输入接口传递给shell进程,先输入显示开始命令,再输入脚本命令,最后输入显示结束命令;步骤6,Agent从shell进程标准输出接口读取输出信息,确认任务执行状态,当读到显示结束命令的信息时,说明脚本命令已经执行完毕,将shell进程返回空闲shell进程池,将执行结果登记日志并返回脚本命令本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种基于异构操作系统的脚本服务化方法,其特征在于,在安装有Agent软件的被监控管理主机中设置空闲shell进程池,所述空闲shell进程池中包含已预先随所述Agent软件启动而启动的若干个shell进程,每个已预先启动的shell进程作为空闲shell进程在所述空闲shell进程池中等待Agent将其取出以执行脚本命令。2.根据权利要求1所述的基于异构操作系统的脚本服务化方法,其特征在于,所述被监控管理主机通过Agent连接服务器,Agent内设置有脚本命令任务队列模块,从服务器传递来的脚本命令和Agent本地发起的脚本命令均首先进入脚本命令任务队列排队,Agent从队列头部取出脚本命令任务,从空闲shell进程池取出shell进程,把脚本命令任务提交给shell进程执行。3.根据权利要求2所述的基于异构操作系统的脚本服务化方法,其特征在于,所述把脚本命令任务提交给shell进程执行包括Agent将脚本命令从shell进程标准输入接口传递给shell进程,先输入显示开始命令,再输入脚本命令,最后输入显示结束命令。4.根据权利要求1所述的基于异构操作系统的脚本服务化方法,其特征在于,对于不同的操作系统都有对应的shell程序,使得脚本服务化方法具有普适性,以支持各种类型的操作系统。5.根据权利要求1所述的基于异构操作系统的脚本服务化方法,其特征在于,所述被监控管理主机的操作系统为windows或linux或AIX或HP
‑
UX。6.根据权利要求1所述的基于异构操作系统的脚本服务化...
【专利技术属性】
技术研发人员:曾东若,白岳,郭家华,冯六军,
申请(专利权)人:北京南天软件有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。