脚本执行系统及方法 【技术领域】
本发明涉及计算机技术高性能领域,特别涉及一种脚本执行系统及方法。
背景技术
在高性能集群系统中,用户会编写脚本来完成一定的功能,如编写脚本来检查运行的业务系统的状态。
现有技术中针对集群中脚本执行的需求,主要是通过控制台命令行的方式,用户手工登陆系统,然后手工执行脚本,并等待脚本执行完毕后根据执行结果进行后续操作,这种方法需要专业的远程登陆软件,对操作人员的业务素质水平要求较高。而且,当用户管理多个集群、并有较多数量的脚本时,在人工手工登陆系统执行脚本的过程中,将耗费较长的时间,尤其是部分脚本的执行需要的时间过长,用户手工执行过程中往往很多时间都浪费在等待执行的过程中;同时,对于广域网下多集群的系统,位于多个节点上的脚本,用户需要频繁的登陆不同节点进行脚本执行操作,耗费很长时间。因此,需要一种系统和方法解决上述问题。
【发明内容】
针对相关技术中存在的一个或多个问题,本发明的目的在于提供一种脚本执行系统及方法,以解决上述问题中的至少之一。
为实现上述目的,根据本发明的一个方面,提供了一种脚本执行系统,包括管理界面、定时模块、脚本执行模块和数据库。其中,管理界面用于用户配置脚本信息和定时任务信息,并将脚本信息和定时任务信息存储至数据库,以及将定时任务信息发送至定时模块。定时模块用于接收定时任务信息,并根据定时任务信息生成定时任务线程在指定的时刻从数据库中读取相应的脚本信息,以及调用脚本执行模块。脚本执行模块用于接收脚本信息,根据脚本信息登陆远程节点,执行位于远程节点上的脚本,并将脚本执行信息存入数据库以供用户查询。数据库用于存储用户配置的脚本信息和定时任务信息,以及脚本执行信息。
优选地,管理界面包括脚本配置模块、定时任务配置模块和查询模块。其中,脚本配置模块用于用户配置脚本信息,并将脚本信息存储至数据库。定时任务配置模块用于用户为每个脚本配置定时任务信息,并将定时任务信息存储至数据库,以及将定时任务信息发送至定时模块。查询模块用于查询数据库中存储的脚本执行信息。
优选地,定时模块包括任务信息接收模块、读取模块和调用模块。其中,任务信息接收模块用于接收用户配置的定时任务信息。读取模块用于根据定时任务信息生成定时任务线程在指定的时刻从数据库中读取相应的脚本信息。发送模块用于调用脚本执行模块,同时将脚本信息传递给脚本执行模块。
优选地,脚本执行模块包括脚本信息接收模块、远程脚本执行模块和存储模块。其中,脚本信息接收模块用于接收来自定时模块的脚本信息或用户直接配置的脚本信息。远程脚本执行模块用于根据脚本信息登陆远程节点,执行位于远程节点上的脚本。存储模块用于将脚本执行信息发送至数据库。
优选地,脚本执行系统还包括浏览器,用户通过浏览器登陆管理界面。
优选地,脚本信息包括脚本名称、脚本描述、脚本所在节点ip、登陆用户、登陆密码、脚本所在路径和执行脚本的命令等。脚本执行信息包括脚本执行时间、脚本执行结果、脚本执行状态、脚本执行耗时、异常信息、日志文件大小和日志文件名称等。
根据本发明的另一个方面,提供了一种脚本执行方法,包括以下步骤:用户通过浏览器登陆管理界面,配置脚本信息和定时任务信息,并将脚本信息和定时任务信息存储至数据库,以及将定时任务信息发送至定时模块。定时模块接收定时任务信息,并根据定时任务信息生成定时任务线程在指定的时刻读取数据库中的脚本信息,以及调用脚本执行模块。脚本执行模块接收来自定时模块的脚本信息,按照脚本信息登陆远程节点执行位于远程节点上的脚本,并将脚本执行信息存储到数据库。用户通过管理界面查询数据库中存储的脚本执行信息。
优选地,脚本执行方法还包括:用户通过浏览器登陆管理界面配置脚本信息后,用户通过管理界面查询到脚本信息,手工点击执行位于远程节点上的脚本。
借助本发明上述至少一个技术方案,通过添加定时任务功能模块对集群中脚本统一管理,定时自动执行脚本,从而提高了用户执行脚本的效率和自动化程度;同时,用户还可以通过浏览器对配置好的脚本手工触发执行,从而降低了执行脚本及相关工作的技术门槛。除此之外,系统将脚本执行结果统一保存记录并提供管理界面以供用户查看,方便了用户的管理。
【附图说明】
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为根据本发明的脚本执行系统的结构图;以及
图2为根据本发明的脚本执行方法的流程图。
【具体实施方式】
考虑到相关技术中存在的问题,本发明提供一种脚本执行系统及方法。下面详细描述本发明的实施例,所述实施例的示例在附图中示出。应理解,下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
图1为根据本发明的脚本执行系统的结构图。如图1所示,该系统采用浏览器/服务器(Browser/Server,B/S)架构,包括浏览器100、管理界面200、定时模块300、脚本执行模块400和数据库500。用户通过浏览器100登陆管理界面200。管理界面200用于用户配置脚本信息和定时任务信息,并将脚本信息和定时任务信息存储至数据库500,以及将定时任务信息发送至定时模块300。定时模块300用于接收定时任务信息,并根据定时任务信息生成定时任务线程在指定的时刻从数据库500中获取相应的脚本信息,以及调用脚本执行模块400。脚本执行模块400用于接收来自定时模块300的脚本信息或者用户在管理界面200直接配置的脚本信息,根据脚本信息登陆远程节点,执行位于远程节点上的脚本,并将脚本执行信息存入数据库500以供用户查询。数据库500用于存储用户配置的脚本信息和定时任务信息,以及脚本执行信息。
管理界面200包括脚本配置模块210、定时任务配置模块220和查询模块230。其中,脚本配置模块210用于用户配置脚本信息并将脚本信息存储至数据库500,其中,脚本信息包括脚本名称、脚本描述、脚本所在节点ip、登陆用户、登陆密码、脚本所在路径和执行脚本的命令等。定时任务配置模块220用于接收用户为每个脚本配置的定时任务信息,并将定时任务信息存储至数据库500,以及将定时任务信息发送至定时模块300。查询模块230用于查询数据库500中存储的脚本执行信息。
定时模块300包括任务信息接收模块310、读取模块320和调用模块330。其中,任务信息接收模块310用于接收用户配置的定时任务信息。读取模块320用于根据定时任务信息生成定时任务线程在指定的时刻从数据库500中获取脚本信息。调用模块330用于调用脚本执行模块400,同时将脚本信息传递给脚本执行模块400。
脚本执行模块400包括脚本信息接收模块410、远程脚本执行模块420和存储模块430。其中,脚本信息接收模块410用于接收来自定时模块300的脚本信息或者用户在管理界面200配置的脚本信息。远程脚本执行模块420用于根据脚本信息登陆远程节点,执行位于远程节点上的脚本。存储模块430用于将脚本执行信息存储至数据库500,其中,脚本执行信息包括脚本执行时间、脚本执行结果、脚本执行状态、脚本执行耗时、异常信息、日志文件大小和日志文件名称等。
应理解,上述实施例仅是示意性的实施例,并不限制本发明仅能够通过上述实施例实现。本领域的普通技术人员还能够根据上述方案提出其他修改或变化,例如改变定时任务触发模块等,这些修改或变化均应包含在本发明的包含范围之内。
下面结合附图2详细描述本发明的脚本执行方法,该方法包括以下步骤:
步骤S210,用户通过浏览器100登陆管理界面200,配置脚本信息和定时任务信息,并将脚本信息和定时任务信息存储至数据库500,以及将定时任务信息发送至定时模块300。
具体地,用户通过浏览器100登陆管理界面200,并通过管理界面200进行脚本的注册等脚本信息的配置管理,即将欲自动执行的脚本所在节点、登陆用户、脚本所在路径、脚本名称等信息添加入系统以供使用。
将定时任务信息存储至数据库500,这样当系统重新启动时,系统可以从数据库中读取定时任务信息并生成定时任务线程,无需用户重新配置。
步骤S220,定时模块300接收定时任务信息,并根据定时任务信息生成定时任务线程在指定的时刻从数据库500中获取脚本信息,以及调用脚本执行模块400。
在调用脚本执行模块400的同时,将脚本信息作为参数传递给脚本执行模块400。
步骤S230,脚本执行模块400接收来自定时模块300的脚本信息,按照脚本信息登陆远程节点执行位于远程节点上的脚本,并将脚本执行信息存储到数据库500。
脚本执行完毕后,系统将脚本执行时间、执行结果、执行状态、执行耗时、异常信息、日志文件大小和日志文件名称等信息存入数据库500中以供查询。
步骤S240,用户通过管理界面200查询数据库500中存储的脚本执行信息。
使用本发明的脚本执行系统,除了可以定时的自动执行脚本,用户还可以手工直接执行脚本。用户通过管理界面200完成脚本信息的添加后,系统通过管理界面查询到脚本信息,手工点击执行位于远程节点上的脚本。
使用本发明的脚本执行系统,大大减少了工作人员执行脚本时每次均须登陆脚本所在节点手工执行脚本,并等待脚本执行完毕后查看执行结果的时间,提高了工作的自动化程度;避免了用户在每个脚本所在节点配置定时任务的操作,极大地提高了工作人员的工作效率;同时,用户还可以通过浏览器对配置好的脚本手工触发执行,从而降低了执行脚本及相关工作的技术门槛。
而且,本发明的脚本执行系统针对多集群多节点中的脚本执行结果进行了统一管理,用户可以通过管理界面查询脚本执行的日志记录和每次脚本执行的输出结果。
总之,本发明通过添加定时任务功能模块对集群中脚本统一管理,定时自动执行脚本,从而提高了用户执行脚本的效率;并且,将脚本执行结果统一保存记录并提供管理界面以供用户查看,方便了用户的管理。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同限定。