专利名称:一种基于任务模板的升级方法及装置、批量升级系统的制作方法
技术领域:
本发明涉及通信领域,特别地涉及一种基于任务模板的升级方法及装置、批量升级系统。
背景技术:
在通信领域大量设备的使用已成为常态,随之而来的是这些设备上软件的升级需要耗费大量的人力。目前所采用的升级方法一般为采用telnet或者SSH(Secure Shell,安全外壳协议)登录到远程服务器上以后,进行一系列命令的执行,如备份文件,停止业务等;然后将新的版本文件通过ftp上传到远程服务器上,通过执行shell脚本或者解压、拷贝命令来完成版本的替换;涉及到数据库脚本则还需要打开数据库客户端执行;最后还要执行启动业务的命令等。通过上述步骤完成的升级过程,费时费力,需要用到多种工具,如telnet工具、ftp工具、数据库客户端工具等。而且一台一台设备的进行升级,对于存在上百上千台设备要升级的情况,所需要耗费的人力和时间是不可想象的。寻找一种方法,能够 将这些类似的需要大量重复的工作以自动执行的方式来完成,成为一个迫切需要解决的问题。
发明内容
本发明解决的技术问题在于提供了一种基于任务模板的升级方法及装置、批量升级系统,通过该技术方法一方面使升级过程组合定制化、自动化,快速的整合出软件的升级流程,提高软件升级的效率和准确性;另外一方面使升级过程批量化,有效的将人力从重复的工作中解放出来。为解决上述问题,本发明提供了一种基于任务模板的升级方法,包括,对常用操作进行封装,按照升级需要对封装后的功能单元进行组合形成任务模板;通过socket (套接字)连接建立与远程服务器间的通信通道;将所述任务模板解析为操作命令,将所述操作命令发送到远程服务器后执行所述操作命令。上述的方法,其中,所述对常用操作进行封装具体为,将常用操作封装为相应的功能单元,所述功能单元由多条有逻辑顺序的操作组成,通过一系列操作命令完成一个功能;所述常用操作包括文件及目录的备份、文件传输、shell脚本执行、数据库脚本执行、数据库备份及人机命令执行。上述的方法,其中,所述通过socket连接建立与远程服务器间的通信通道包括,通过socket输入流对远程服务器发送命令,通过socket输出流来获取远程服务器执行命令返回的日志及结果;对于涉及文件的操作,将文件从本地服务器放到ftp服务器上,通过socket连接发送命令通知远程服务器,远程服务器从ftp服务器上获取所述文件,从而完成文件从本地服务器到远程服务器的传输。上述的方法,其中,所述将所述任务模板解析为操作命令具体为,通过程序对任务模板进行解析,将所述任务模板解析为相应的功能单元,然后将每个功能单元解析为一系列有逻 辑顺序的操作命令。上述的方法,其中,所述执行所述操作命令的过程包括,通过socket连接在远程服务器上执行所述操作命令,若操作命令执行成功,判断所有操作命令是否已执行结束,若所有命令已成功执行完成,则认为该功能已成功实现,否则继续执行后续命令;若操作命令执行失败,则进入出错处理流程。本发明还提供了一种基于任务模板的升级装置,包括,模板编辑模块,用于对常用操作进行封装,按照升级需要对封装后的功能单元进行组合形成任务模板;socket通信模块,用于通过socket连接建立与远程服务器间的通信通道;模板解析执行模块,用于将所述任务模板解析为操作命令,将所述操作命令发送到远程服务器后执行所述操作命令。上述的装置,其中,所述模板编辑模块用于对常用操作进行封装具体为,所述模板编辑模块用于将常用操作封装为相应的功能单元,所述功能单元由多条有逻辑顺序的操作组成,通过一系列操作命令完成一个功能;所述常用操作包括文件及目录的备份、文件传输、shell脚本执行、数据库脚本执行、数据库备份及人机命令执行。上述的装置,其中,所述socket通信模块用于通过socket连接建立与远程服务器间的通信通道包括,所述socket通信模块用于通过socket输入流对远程服务器发送命令,通过socket输出流来获取远程服务器执行命令返回的日志及结果;以及对于涉及文件的操作,将文件从本地服务器放到ftp服务器上,通过socket连接发送命令通知远程服务器,远程服务器从ftp服务器上获取所述文件,从而完成文件从本地服务器到远程服务器的传输。上述的装置,其中,所述模板解析执行模块用于将所述任务模板解析为操作命令具体为,所述模板解析执行模块用于通过程序对任务模板进行解析,将所述任务模板解析为相应的功能单元,然后将每个功能单元解析为一系列有逻辑顺序的操作命令。上述的装置,其中,所述模板解析执行模块用于执行所述操作命令的过程包括,所述模板解析执行模块用于通过socket连接在远程服务器上执行命令,若操作命令执行成功,判断所有命令是否已执行结束,若所有命令已成功执行完成,则认为该功能已成功实现,否则继续执行后续命令;若操作命令执行失败,则进入出错处理流程。本发明还提供了一种批量升级系统,包括上述的升级装置,还包括,数据分配线程模块,用于接收任务数据后,统一进行调度分配,依次判断多个升级装置,将任务数据分配给处理空闲状态的升级装置,并且将该升级装置的状态置为为工作中;
所述多个升级装置,用于对任务数据进行处理,在升级完成后,会更改自己的状态为空闲,同时通知所述数据分配线程模块。与现有技术相比,采用本发明的技术方案,使整个升级过程控制在一个工具内,避免了过多工具来回使用;同时整个升级过程是自动串联起来按顺序执行的,这也避免了手工操作过程中来回切换而可能造成的执行过程遗漏,极大的提高了执行的准确性和效率。另外,采用批量升级系统,只要服务器性能允许,使用者可以根据设备的实际情况来最大限度的增加连接数,提高升级效率。
此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发 明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中图I是本发明第一实施例流程图;图2是任务模板编辑不例图;图3是socket通f目不意图;图4是任务模板执行流程图;图5是为本发明第二实施例结构图;图6是本发明第三实施例结构图。
具体实施例方式为了使本发明所要解决的技术问题、技术方案及有益效果更加清楚、明白,以下结合附图和实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。如图I所示,为本发明第一实施例流程图,提供了一种基于任务模板的升级方法,包括步骤S101,将常用操作进行封装,按照升级需要对封装后的功能单元进行组合形成任务模板;如图2所示,是任务模板编辑示例图,将升级过程中常用的操作进行封装,封装为文件及目录的备份、文件传输、shell脚本执行、数据库脚本执行、数据库备份及人机命令执行等功能,每个功能均由多条有逻辑顺序的操作组成,通过这一系列操作命令完成一个功倉泛。如文件及目录的备份包括创建备份目标目录、创建备份时间戳目录、执行拷贝命令;而文件传输包括文件从本地传输(put)到ftp服务器的操作和远程服务器将文件从ftp服务器获取(get)过去的操作;shell脚本执行包括传输shell到远程服务器、更改shell执行权限、执行shell脚本操作;数据库脚本执行包括传输数据库脚本到远程服务器、连接数据库、执行数据库脚本;数据库备份包括连接数据库、执行数据库备份命令;
人机命令包括发送命令本身。通过对这些功能按照升级过程的需要进行组合则形成任务模板。从图I中可以看出,首先模板的组合非常方便,只要将封装好的操作拖动到右侧的升级过程树中,填写关键属性就可以完成模板的制作;同时模板的编写也非常灵活,模板的步骤可以任意调整,这样每个项目都可以根据项目自身的情况来定制自己的模板,从而实现自己的升级过程;最后这种将操作封装成功能的方式也非常易于扩展,如果有新的功能需要,仅需要将新的功能封装好添加到左侧的功能列表中,就可以实现新功能的增加以及对原有功能的兼容扩展。其中,每个操作都定义了执行用户、执行超时时间、执行后是否暂停、本步骤描述等属性,通过对这些属性的填写,可以使整个升级模板的步骤以解释性的语言展示出来,非常便于使用人员理解。步骤S102,本地服务器通过S0Cket(套接字)连接建立与远程服务器间的通信通道; 该通信通道是基于telnet及SSH的一些协议内容来完成对telnet和SSH的会话模拟。只要填写了设备的IP信息及登录的用户名和密码,就可以实现与远程服务器间的自动连接。以及通过socket的输入和输出,来实现命令的发送以及执行结果返回的处理,具体地,如图3所示,是socket通信示意图,本地服务器通过socket通信建立与远程服务器之间的连接,通过socket输入流(Input Stream)来对远程服务器发送命令,通过socket输出流(Output Stream)来获取远程服务器执行命令返回的日志及结果。涉及到文件的操作,则通过ftp协议,首先将文件从本地服务器传输(put)至ftp服务器上,然后再通过socket发送命令给远程服务器,让远程服务器通过ftp协议到ftp服务器上将文件获取(get)下来,从而完成文件从本地服务器到远程服务器的传输。这一过程的目的就是首先将手工执行的底层环境模拟出来,然后再在这一环境上模拟其他的操作。步骤S103,将所述任务模板解析为操作命令,将所述操作命令发送到远程服务器后执行所述操作命令。具体地,如图4所示,是任务模板执行流程图,包括,步骤S401,读取任务模板,在执行模板任务时,将模板解析为一个个封装好的功能单元,然后再将每个功能单元解析成为一系列有逻辑顺序的命令;步骤S402,通过socket连接在远程服务器上执行命令,如果命令执行成功,判断所有命令是否已执行结束,若所有命令已成功执行完成,则认为该功能已成功实现,否则继续执行后续命令;如果命令执行失败,则进入出错处理流程。这一过程实际就是模拟的远程登录到服务器以后,手工输入执行的命令。相应地,对于封装的各个功能,具体执行过程如下文件及目录的备份,首先通过socket通信与远程服务器建立连接,然后发送备份命令给远程服务器完成备份。人机命令执行,首先通过socket通信与远程服务器建立连接,然后将要执行的人机命令发送给远程服务器进行执行。数据库备份,首先通过socket通信与远程服务器建立连接后,将备份脚本put到ftp服务器,然后发送get脚本的命令给远程服务器,远程服务器然后到ftp服务器上get备份脚本,最后发送执行备份脚本的命令给远程服务器来实现数据库的备份。Shell脚本执行,首先通过socket通信与远程服务器建立连接,将shell脚本put到ftp服务器,然后发送get命令给远程服务器,然后远程服务器到ftp服务器上getshell脚本,最后发送执行shell脚本的命令给远程服务器,进行shell脚本的执行。文件传输,首先通过socket通信与远程服务器建立连接后,将文件put到ftp服务器,然后发送get文件的命令给远程服务器,远程服务器到ftp服务器上get文件,完成文件的传输。数据库脚本执行,首先通过socket通信与远程服务器建立连接,将数据库脚本put到ftp服务器,然后发送get命令给远程服务器,然后远程服务器到ftp服务器上get数据库脚本,最后发送执行数据库脚本的命令给远程服务器,进行数据库脚本的执行。
从上述过程来看,文件及目录的备份与人机命令执行的通信过程类似,但实际文件及目录的备份,最后发送备份命令是一系列的命令,包括备份目标目录的创建,磁盘空间检测,文件拷贝等,而人机命令执行仅需要将待执行的命令发送出去就可以了,虽然通信过程类似,但实际步骤存在很大差异,主要表现在最后发送的命令其实是一系列有逻辑顺序的命令组合,而非单纯的一条命令。同样,数据库备份、shell脚本执行、数据库脚本执行在通信过程上是类似的,但实际在执行过程中的具体步骤存在很大的差别,如数据库备份同样需要创建备份目标目录、检测磁盘空间、连接数据库等;而shell脚本执行则需要更改shell的执行权限等;数据库脚本执行则需要连接数据库,而无需检测磁盘空间这些操作。通过程序实现一些需要客户端工具才能实现的功能,以减少升级过程中因为使用工具过多而造成的复杂性。如将升级过程中涉及的ftp操作拆分为两步进行,首先将文件从本地上传到ftp服务器,由程序实现的put操作来完成,而从ftp服务器到远程服务器则由程序telnet到设备以后通过socket连接发起get操作,将文件获取到远程服务器。通过两步ftp操作,完成文件从本地服务器到远程服务器的传输。模板中涉及的数据库脚本执行部分,通过连接到远程服务器以后,在远程服务器上调用程序内置的shell脚本来完成。这样就实现了 telnet/SSH客户端、ftp客户端、数据库客户端等功能,从而使整个升级过程控制在一个工具内,避免了过多工具来回使用。同时整个升级过程是由程序自动串联起来按顺序执行的,这也避免了手工操作过程中因为来回切换而可能造成的执行过程遗漏,极大的提闻了执行的准确性和效率。如图5所示,为本发明第二实施例结构图,提供了一种基于任务模板的升级装置,包括,模板编辑模块,用于对常用操作进行封装,按照升级需要对封装后的功能单元进行组合形成任务模板;socket通信模块,用于通过socket连接建立与远程服务器间的通信通道;模板解析执行模块,用于将所述任务模板解析为操作命令,将所述操作命令发送到远程服务器后执行所述操作命令。其中,所述模板编辑模块用于对常用操作进行封装具体为,所述模板编辑模块用于将常用操作封装为相应的功能单元,所述功能单元由多条有逻辑顺序的操作组成,通过一系列操作命令完成一个功能;所述常用操作包括文件及目录的备份、文件传输、shell脚本执行、数据库脚本执行、数据库备份及人机命令执行。其中,所述socket通信模块用于通过socket连接建立与远程服务器间的通信通道包括,所述socket通信模块用于通过socket输入流对远程服务器发送命令,通过socket输出流来获取远程服务器执行命令返回的日志及结果;以及对于涉及文件的操作,将文件从本地服务器放到ftp服务器上,通过socket连接发送命令通知远程服务器,远程服务器从ftp服务器上获取所述文件,从而完成文件从本地服务器到远程服务器的传输。其中,所述模板解析执行模块用于将所述任务模板解析为操作命令具体为,所述模板解析执行模块用于通过程序对任务模板进行解析,将所述任务模板解析 为相应的功能单元,然后将每个功能单元解析为一系列有逻辑顺序的操作命令。如图6所示,为本发明第三实施例结构图,提供了一种采用上述升级装置的批量升级系统,包括,数据分配线程模块,用于接收任务数据后,统一进行调度分配,依次判断多个升级装置,查看那一个升级装置处于空闲状态,然后将任务数据分配给该升级装置,并且将该升级装置的状态修改为工作中;多个升级装置,用于对任务数据进行处理,在升级完成后,会更改自己的状态为空闲,同时通知数据分配线程。采用上述系统,通过配置的方法来决定最大连接数,只要服务器性能允许,使用者可以根据设备的实际情况来最大限度的增加连接数,提高升级效率。上述说明示出并描述了本发明的优选实施例,但如前所述,应当理解本发明并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文所述发明构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本发明的精神和范围,则都应在本发明所附权利要求的保护范围内。
权利要求
1.一种基于任务模板的升级方法,其特征在于,包括, 对常用操作进行封装,按照升级需要对封装后的功能单元进行组合形成任务模板; 通过socket连接建立与远程服务器间的通信通道; 将所述任务模板解析为操作命令,将所述操作命令发送到远程服务器后执行所述操作命令。
2.根据权利要求I所述的方法,其特征在于,所述对常用操作进行封装具体为, 将常用操作封装为相应的功能单元,所述功能单元由多条有逻辑顺序的操作组成,通过一系列操作命令完成一个功能; 所述常用操作包括文件及目录的备份、文件传输、shell脚本执行、数据库脚本执行、数据库备份及人机命令执行。
3.根据权利要求I或2所述的方法,其特征在于,所述通过socket连接建立与远程服务器间的通信通道包括, 通过socket输入流对远程服务器发送命令,通过socket输出流来获取远程服务器执行命令返回的日志及结果; 对于涉及文件的操作,将文件从本地服务器放到ftp服务器上,通过socket连接发送命令通知远程服务器,远程服务器从ftp服务器上获取所述文件,从而完成文件从本地服务器到远程服务器的传输。
4.根据权利要求3所述的方法,其特征在于,所述将所述任务模板解析为操作命令具体为, 通过程序对任务模板进行解析,将所述任务模板解析为相应的功能单元,然后将每个功能单元解析为一系列有逻辑顺序的操作命令。
5.根据权利要求4所述的方法,其特征在于,所述执行所述操作命令的过程包括, 通过socket连接在远程服务器上执行所述操作命令,若操作命令执行成功,判断所有操作命令是否已执行结束,若所有命令已成功执行完成,则认为该功能已成功实现,否则继 续执行后续命令;若操作命令执行失败,则进入出错处理流程。
6.一种基于任务模板的升级装置,其特征在于,包括, 模板编辑模块,用于对常用操作进行封装,按照升级需要对封装后的功能单元进行组合形成任务模板; socket通信模块,用于通过socket连接建立与远程服务器间的通信通道; 模板解析执行模块,用于将所述任务模板解析为操作命令,将所述操作命令发送到远程服务器后执行所述操作命令。
7.根据权利要求6所述的装置,其特征在于,所述模板编辑模块用于对常用操作进行封装具体为, 所述模板编辑模块用于将常用操作封装为相应的功能单元,所述功能单元由多条有逻辑顺序的操作组成,通过一系列操作命令完成一个功能; 所述常用操作包括文件及目录的备份、文件传输、shell脚本执行、数据库脚本执行、数据库备份及人机命令执行。
8.根据权利要求6或7所述的装置,其特征在于,所述socket通信模块用于通过socket连接建立与远程服务器间的通信通道包括,所述socket通信模块用于通过socket输入流对远程服务器发送命令,通过socket输出流来获取远程服务器执行命令返回的日志及结果;以及 对于涉及文件的操作,将文件从本地服务器放到ftp服务器上,通过socket连接发送命令通知远程服务器,远程服务器从ftp服务器上获取所述文件,从而完成文件从本地服务器到远程服务器的传输。
9.根据权利要求8所述的装置,其特征在于,所述模板解析执行模块用于将所述任务模板解析为操作命令具体为, 所述模板解析执行模块用于通过程序对任务模板进行解析,将所述任务模板解析为相应的功能单元,然后将每个功能单元解析为一系列有逻辑顺序的操作命令。
10.根据权利要求9所述的装置,其特征在于,所述模板解析执行模块用于执行所述操作命令的过程包括, 所述模板解析执行模块用于通过socket连接在远程服务器上执行命令,若操作命令执行成功,判断所有命令是否已执行结束,若所有命令已成功执行完成,则认为该功能已成功实现,否则继续执行后续命令;若操作命令执行失败,则进入出错处理流程。
11.一种批量升级系统,包括多个权6至10任一所述的升级装置,其特征在于,还包括, 数据分配线程模块,用于接收任务数据后,统一进行调度分配,依次判断多个升级装置,将任务数据分配给处理空闲状态的升级装置,并且将该升级装置的状态置为为工作中; 所述多个升级装置,用于对任务数据进行处理,在升级完成后,会更改自己的状态为空闲,同时通知所述数据分配线程模块。
全文摘要
本发明涉及一种基于任务模板的升级方法,该方法包括以下步骤,对常用操作进行封装,按照升级需要对封装后的功能单元进行组合形成任务模板;通过socket(套接字)连接建立与远程服务器间的通信通道;将所述任务模板解析为操作命令,将所述操作命令发送到远程服务器后执行所述操作命令。本发明还涉及一种基于任务模板的升级装置以及批量升级系统。采用本发明的技术方案,极大的提高了执行的准确性和效率。另外,采用批量升级系统,只要服务器性能允许,使用者可以根据设备的实际情况来最大限度的增加连接数,提高升级效率。
文档编号G06F9/445GK102736926SQ201110093710
公开日2012年10月17日 申请日期2011年4月14日 优先权日2011年4月14日
发明者卢振兴 申请人:中兴通讯股份有限公司