发明内容
鉴于上述问题,本发明提供了一种系统管理服务器及相应的系统管理方法,以克服上述问题或者至少部分地解决上述问题。
根据本发明的一个方面,提供了一种系统管理服务器,包括:
存储单元,适于存储目标服务器列表,所述列表包括一个或者多个要进行系统管理的目标服务器信息,所述目标服务器信息包括目标服务器的主机名;
网络接口,适于根据目标服务器的主机名与目标服务器建立网络链接,并对所述目标服务器进行远程控制;以及
操作单元,适于经由所述网络接口对目标服务器列表中的每个目标服务器进行系统管理操作。
可选地,所述操作单元包括系统部署单元,系统更新单元,和/或系统状态检测单元。特别地,所述系统管理操作是SDK管理操作,则所述系统部署单元是SDK部署单元,所述系统更新单元是SDK更新单元,所述系统状态检测单元是SDK状态检测单元。
可选地,所述系统部署单元适于:指定需要部署的系统文件;指定在目标服务器上部署系统的路径和文件夹;以及针对所述目标服务器列表中的每个目标服务器,根据目标服务器的主机名、路径和文件夹在每个目标服务器上部署所述系统文件。
可选地,所述系统更新单元适于:指定需要更新的系统文件;指定在目标服务器上更新系统的路径和文件夹;以及针对所述目标服务器列表中的每个目标服务器,根据目标服务器的主机名、路径和文件夹在每个目标服务器上更新所述系统文件。
可选地,所述系统状态检测单元适于:指定状态检测脚本在目标服务器上的路径和文件夹;以及针对所述目标服务器列表中的每个目标服务器,根据目标服务器的主机名、路径和文件夹在每个目标服务器上运行状态检测脚本。
可选地,所述操作单元包括系统部署单元、系统更新单元和系统状态检测单元,以及在由所述系统部署单元或系统更新单元在每个目标服务器上进行部署或更新操作之后,自动在每个目标服务器上运行状态检测脚本以检测在目标服务器上的系统状态。
可选地,被检测的系统状态包括每个目标服务器上的系统整体运行状态和各个系统接口单元状态。
可选地,所述存储单元还适于存储一服务器状态列表,所述列表包括已部署系统文件的服务器信息,所述服务器信息包括服务器的主机名和服务器状态;其中所述系统管理服务器还包括状态更新单元,适于根据状态检测结果,更新相应服务器的服务器状态。
根据本发明的另一方面,提供一种系统管理方法,包括
存储目标服务器列表,所述列表包括一个或者多个要进行系统管理的目标服务器信息,所述目标服务器信息包括目标服务器的主机名;
根据目标服务器的主机名与目标服务器建立网络链接,并对所述目标服务器进行远程控制;以及
经由网络链接对目标服务器列表中的每个目标服务器进行系统管理操作。
可选地,所述系统管理操作包括在目标服务器上进行系统部署,在目标服务器上进行系统更新,或检测目标服务器上的系统状态。特别地,所述系统管理操作是SDK管理操作,则系统部署是SDK部署,系统更新是SDK更新,检测系统状态是检测SDK状态。
可选地,在目标服务器上进行系统部署的步骤包括:指定需要部署的系统文件;指定在目标服务器上部署系统的路径和文件夹;以及针对所述目标服务器列表中的每个目标服务器,根据目标服务器的主机名、路径和文件夹在每个目标服务器上部署所述系统文件。
可选地,在目标服务器上进行系统更新的步骤包括:指定需要更新的系统文件;指定在目标服务器上更新系统的路径和文件夹;以及针对所述目标服务器列表中的每个目标服务器,根据目标服务器的主机名、路径和文件夹在每个目标服务器上更新所述系统文件。
可选地,检测目标服务器上的系统状态的步骤包括:指定状态检测脚本在目标服务器上的路径和文件夹;以及针对所述目标服务器列表中的每个目标服务器,根据目标服务器的主机名、路径和文件夹在每个目标服务器上运行状态检测脚本。
可选地,所述方法还包括:在每个目标服务器上进行部署或更新操作之后,自动在每个目标服务器上运行状态检测脚本以检测在目标服务器上的系统状态。
可选地,被检测的系统状态包括每个目标服务器上的系统整体运行状态和各个系统管理接口状态。
可选地,所述方法包括存储一服务器状态列表,所述列表包括已部署系统文件的服务器信息,所述服务器信息包括服务器的主机名和服务器状态;其中所述方法还包括,根据状态检测结果,更新相应服务器的服务器状态。
根据本发明的又一方面,还提供一种用于服务器系统管理的系统,包括上述系统管理服务器和多个目标服务器,其中所述系统管理服务器经由所述网络接口对目标服务器进行系统管理操作。
本发明提供的系统管理服务器、系统管理方法以及用于服务器系统管理的系统,基于目标服务器列表,经由网络接口,对目标服务器列表中的每个目标服务器进行包括系统部署、系统更新和/或系统状态检测的系统管理操作。由此,解决了当前网络应用提供商在多台服务器上部署诸如SDK的系统时,以及对诸如SDK的系统进行更新、检测等操作时所必须进行的人工操作,实现了对多台服务器上诸如SDK的系统的自动部署、更新和检测操作,极大地提高了操作效率和操作准确性。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式,并配合附图,详细说明如下。
具体实施方式
为使本发明的上述目的、特征和优点更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
图1示出了本发明一实施例的系统管理服务器100,包括:存储单元101,网络接口102和操作单元103。存储单元101存储有目标服务器列表,
为了便于管理成千上万台服务器上部署的SDK,系统管理员在系统管理服务器上建立SDK服务器列表,列表包括多条SDK服务器信息,每条SDK服务器信息包括要进行SDK管理操作的目标服务器的主机名、所在机房、连接账号以及状态等等。下面表1以示例的方式示出了一个SDK服务器列表。系统管理员可以在系统管理服务器上对SDK服务器列表进行添加、删除、修改、查询等操作。
表1
主机名 |
所在机房 |
连接账号 |
状态 |
test.add.bit |
bit |
sync |
ok |
test.add.ccc |
ccc |
sync |
pause |
test.add.smth |
smth |
sync |
fail |
网络接口102根据目标服务器的主机名与目标服务器建立网络链接,并对该目标服务器进行远程控制。具体地,所述网络链接可以是有线网络链接,也可以是无线网络链接。
操作单元103经由该网络接口102对目标服务器列表中的每个目标服务器进行系统管理操作。
特别地,在本实施例中,系统管理操作是指在目标服务器上进行SDK管理操作,包括但不限于在目标服务器上进行SDK部署、SDK更新以及SDK状态检测。相应地,图2示出了操作单元103,其包括系统部署单元1031、系统更新单元1032和系统状态检测单元1033,分别适于经由网络接口102对目标服务器进行SDK部署、SDK更新和SDK状态检测。
具体地,当要在目标服务器上进行SDK管理操作时,系统管理员首先在系统管理服务器上选定将要进行SDK管理操作的一个或多个目标服务器,生成一包括选定目标服务器的目标服务器列表,该列表包括目标服务器的主机名。为了方便实现对目标服务器的管理操作,进一步生成目标服务器shell脚本文件server_list.sh,其示例如下:
#!/usr/local/bin/bash
#服务器主机名列表
server_list="w100.add.bjt w101.add.bjt w102.add.bjt w103.add.bjt w104.add.bjtw105.add.bjt"
SDK部署
当要在上述目标服务器"w100.add.bjt w101.add.bjt w102.add.bjt w103.add.bjtw104.add.bjt w105.add.bjt"上部署SDK文件时,操作单元103的系统部署单元1031执行下述操作:
指定需要部署的SDK文件sdk.tar;
指定在目标服务器上部署SDK的路径/home/tools/和文件夹sdk;
针对每个目标服务器,根据目标服务器的主机名、路径和文件夹在每个目标服务器上部署SDK文件sdk.tar。
具体地,系统部署单元1031生成SDK部署shell脚本文件deploy.sh,并在系统管理服务器端运行该脚本文件,其调用上述目标服务器shell脚本文件server_list.sh,经由网络接口102在每个目标服务器上完成部署操作。其中,deploy.sh的示例如下:
其中,可选地,在完成SDK部署之后,脚本文件deploy.sh还能够自动运行在目标服务器上的检测脚本sdkChecker.php来检测目标服务器上的SDK状态,该检测脚本的示例见下文。
SDK更新
当要在上述目标服务器"w100.add.bjt w101.add.bjt w102.add.bjt w103.add.bjtw104.add.bjt w105.add.bjt "上更新SDK文件时,操作单元103的系统更新单元1032执行下述操作:
指定需要更新的SDK文件,例如为a.php,b.php;
指定在目标服务器上更新SDK的路径/home/tools/和文件夹sdk;
针对每个目标服务器,根据目标服务器的主机名、路径和文件夹在每个目标服务器上更新SDK文件a.php和b.php。
具体地,系统更新单元1032生成SDK更新shell脚本文件update.sh,并在系统管理服务器端运行该脚本文件,其调用上述目标服务器shell脚本文件server_list.sh,经由网络接口102在每个目标服务器上完成更新操作。其中,update.sh的核心内容如下:
其中,可选地,在完成SDK更新之后,脚本文件update.sh还能够自动运行在目标服务器上的检测脚本sdkChecker.php来检测目标服务器上的SDK状态,该检测脚本的示例见下文。
SDK状态检测
当要在上述目标服务器"w100.add.bjt w101.add.bjt w102.add.bjt w103.add.bjtw104.add.bjt w105.add.bjt "上检测SDK状态时,操作单元103的系统状态检测单元1033执行下述操作:
指定状态检测脚本sdkChecker.php在目标服务器上的路径/home/tools/和文件夹sdk;
针对每个目标服务器,根据目标服务器的主机名、路径和文件夹在每个目标服务器上运行状态检测脚本sdkChecker.php。
具体地,系统状态检测单元1033生成SDK检测shell脚本文件check.sh,并在系统管理服务器端运行该脚本文件,其调用上述目标服务器shell脚本文件server_list.sh,经由网络接口102在每个目标服务器上完成状态检测操作;其中check.sh的示例如下:
根据本发明,SDK状态检测主要包括检测目标服务器SDK的整体运行状态以及各个接口状态是否正常,在完成检测后还会输出检测结果供管理员查看并确认。上述SDK检测脚本sdkChecker.php的示例如下:
在本实施例中,SDK是基于php编写的。但本领域技术人员都能明了,本发明并不限于此。
特别地,本发明所述系统管理服务器还包括状态更新单元104,适于根据SDK检测脚本sdkChecker.php的检测结果更新SDK服务器列表中相应的服务器的状态,以方便系统管理准确掌握所有部署了SDK的服务器的准确状态。
综合上述系统管理服务器和目标服务器,本发明还提供一种用于服务器系统管理的系统,如图3所示。系统管理服务器100通过存储单元101中的目标服务器列表选定需要进行维护的目标服务器201,202;通过网络接口102建立系统管理服务器100与选定的目标服务器201,202之间的网络连接,由此可以实现系统管理服务器100对目标服务器201,202的远程控制。
根据所要执行的管理操作,操作单元103经由网络接口102向目标服务器201,202执行SDK部署、SDK更新或者SDK状态检测等操作。更进一步地,在完成上述操作之后,系统管理服务器100还可以通过系统更新单元104更新SDK服务器列表中相应目标服务器的状态。
图4示出了根据本发明另一实施例提供的系统管理方法,该方法适于在一种系统管理服务器中执行。
该方法始于步骤301,存储目标服务器列表,该列表包括一个或者多个要进行系统管理的目标服务器信息,服务器信息的相关信息见上面参考表1的描述,这里不再赘述。具体地,再进一步根据所述目标服务器信息生成目标服务器shell脚本文件,以方便后面的系统管理操作对目标服务器进行调用。
在进行系统管理操作之前,执行步骤302,根据目标服务器的主机名与目标服务器建立网络链接,并对该目标服务器进行远程控制。具体地,该网络链接可以是有线网络链接,也可以是无线网络链接。
接下来进入步骤303,经由网络链接对目标服务器列表中的每个目标服务器进行系统管理操作。具体地,该操作可以为对目标服务器进行SDK部署、SDK更新或者SDK状态检测等。
进一步地,步骤303中的SDK部署操作包括:
指定需要部署的诸如SDK文件的系统文件;
指定在目标服务器上部署系统的路径和文件夹;
针对目标服务器,根据目标服务器的主机名、路径和文件夹在该目标服务器上部署所述系统文件。
与前述系统部署单元1031的实施例相同,本实施例所述的SDK部署操作也是由系统管理服务器运行SDK部署shell脚本文件,其调用目标服务器shell脚本文件,经由网络接口在每个目标服务器上完成部署操作的。
步骤303中的SDK更新操作的步骤包括:
指定需要更新的诸如SDK文件的系统文件;
指定在目标服务器上更新系统的路径和文件夹;
针对目标服务器列表中的每个目标服务器,根据目标服务器的主机名、路径和文件夹在每个目标服务器上更新系统文件。
与前述系统更新单元1032的实施例相同,本实施例所述的SDK更新操作也是由系统管理服务器运行SDK更新shell脚本文件,其调用目标服务器shell脚本文件,经由网络接口在每个目标服务器上完成更新操作的。
步骤303中的SDK状态检测的步骤包括:
指定状态检测脚本在目标服务器上的路径和文件夹;
针对目标服务器列表中的每个目标服务器,根据目标服务器的主机名、路径和文件夹在每个目标服务器上运行状态检测脚本。
与前述系统状态检测单元1033的实施例相同,本实施例所述的SDK检测操作也是由系统管理服务器运行SDK检测shell脚本文件,其调用目标服务器shell脚本文件,经由网络接口在每个目标服务器上完成检测操作的。
在每个目标服务器上进行部署或更新操作之后,可以自动在每个目标服务器上运行状态检测脚本以检测在目标服务器上的系统状态。根据SDK检测脚本文件的内容,被检测的系统状态包括每个目标服务器上的系统整体运行状态和各个系统管理接口状态。
根据本发明的实施例,接下来还可以进行步骤304,根据SDK检测脚本sdkChecker.php的检测结果更新SDK服务器列表中相应的服务器的状态,以方便系统管理准确掌握所有部署了SDK的服务器的准确状态。
虽然本发明实施例中的系统管理操作都是基于SDK管理操作进行描述的,但本领域技术人员都能理解,本发明的系统管理操作并不限于SDK管理操作(SDK部署、SDK更新以及SDK状态检测),可在多台服务器上统一执行的其他系统管理操作都包括在内。
通过本发明实施例所提供的系统管理服务器、系统管理方法以及用于服务器系统管理的系统,将要进行管理操作的目标服务器列表直接生成服务器列表shell脚本文件;并基于服务器列表shell脚本文件,针对服务器上SDK的部署、更新、检测等操作编写相应的操作shell脚本文件;直接在系统管理服务器侧运行相应的操作shell脚本文件来完成相应的操作。根据本发明,系统管理员直接在系统管理服务器侧就能实现对成千上万台目标服务器的系统管理,例如在大量服务器上轻松、方便地部署SDK、更新SDK以及检测SDK状态,提高了操作效率,减少了差错率。
A6、根据A3-5中任一个所述的系统管理服务器,其中所述操作单元包括系统部署单元、系统更新单元和系统状态检测单元,以及在由所述系统部署单元或系统更新单元在每个目标服务器上进行部署或更新操作之后,自动在每个目标服务器上运行状态检测脚本以检测在目标服务器上的系统状态。A7、根据A1-6中任一个所述的系统管理服务器,其中被检测的系统状态包括每个目标服务器上的系统整体运行状态和各个系统接口单元状态。A8、根据A1-7中任一个所述的系统管理服务器,所述存储单元还适于存储一服务器状态列表,所述列表包括已部署系统文件的服务器信息,所述服务器信息包括服务器的主机名和服务器状态,其中所述系统管理服务器还包括状态更新单元,适于根据状态检测结果,更新相应标服务器的服务器状态。
B14、根据B11-13中任一个所述的方法,其中检测目标服务器上的系统状态的步骤包括:指定状态检测脚本在目标服务器上的路径和文件夹;针对所述目标服务器列表中的每个目标服务器,根据目标服务器的主机名、路径和文件夹在每个目标服务器上运行状态检测脚本。B15、根据B12或13所述的方法,还包括在每个目标服务器上进行部署或更新操作之后,自动在每个目标服务器上运行状态检测脚本以检测在目标服务器上的系统状态。B16、根据B10-15中任一个所述的方法,其中被检测的系统状态包括每个目标服务器上的系统整体运行状态和各个系统管理接口状态。B17、根据B10-16中任一个所述的方法,包括存储一服务器状态列表,所述列表包括已部署系统文件的服务器信息,所述服务器信息包括服务器的主机名和服务器状态其中所述方法还包括:根据状态检测结果,更新相应服务器的服务器状态。
本发明提供的方法不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。