用于处理远程外壳命令的方法和装置的制作方法

文档序号:6454860阅读:226来源:国知局
专利名称:用于处理远程外壳命令的方法和装置的制作方法
技术领域
本发明主要涉及为客户机/服务器的运用而设计的计算机网络和 软件应用。特别地,本发明涉及一种用于向客户机提供作为对远程外 壳应用的响应的一部分的目标主机标识数据的系统和方法。
背景技术
客户机/服务器模型是一种计算架构,它包含从一个或多个服务 器进程请求服务的客户机进程(程序,通常被称为用户命令或客户机 命令)。在客户机/服务器架构中, 一台计算机上的程序向另一台计算 机上的程序发送请求并等待响应。例如,客户机可以向服务器发送请 求,并且等待响应到来。相应地,服务器可以等待来自客户机的请求、 接收该请求、处理该请求、并且将结果返回给客户机(也就是用响应 进行答复)。 一旦接收到来自服务器的响应,那么客户机可以酌情执 行附加的响应处理。
现代的计算和信息技术环境使用了群集和分布式计算机系统,该 系统可以延伸至成百上千的主机,其中主机是 一 个计算机操作系统
(OS)映像,例如使用了 AIX⑧或UNIX⑧操作系统的映像。 一个或 多个分布式计算机系统/群集管理员可以负责从单个管理点("SPOA") 管理众多群集和分布式计算机系统。这些管理员通常需要使用客户机/ 服务器远程"外壳(shell)"界面(也被称为外壳程序或外壳应用)来 管理和监视分布式/群集系统中的主机,该界面则是一个提供用于打开 远程目标主机上的外壳的手段的客户机/服务器应用。外壳是操作系统 界面,"外壳脚本"是保存在文件中的外壳和操作系统命令序列。"命令" 是用于执行诸如返回当前日期之类的单个操作或是多个操作(例如扫 描特定字符规则字串(character pattern )的输出,对多列进行格式化匹配,在结果中添加日期和时间,以及将结果写入文件)的计算机程
序。在AIX⑧操作系统中可用的一些命令示例是"date" 、 "dsh" 和"rsh"命令。"dsh,,和"rsh"命令都在下文中进行了详细讨论, 并且被设计用于接受其它作为输入的命令和随后在远程目标主机上运 行这些命令。
命令可以在远程外壳中运行。远程外壳是在远程目标主机上通过 远程外壳界面打开的操作外壳。远程外壳应用的示例是包含客户机部 分和服务器或"守护进程(daemon),,部分的"rsh"。远程外壳的 另一个示例是ssh (安全外壳)。远程外壳协议是一个供远程外壳应 用使用以使客户机部分与服务器部分进行通信的特殊协议。该远程外 壳协议允许客户机通过服务器来建立远程外壳。众所周知的远程外壳 协议及其在远程外壳应用中的实施方式(例如AIX操作系统中的 rsh/rshd,以及OpenSSH组织使用的ssh/sshd )被设计成让客户机(远 程外壳应用的客户机部分)与单个服务器上的目标主机(远程外壳应 用的服务器部分)取得联系。这被称为是一对一处理客户机一次与 目标主机上的一个服务器(守护进程)相连。由于远程外壳程序具有 一对一特性,因此,客户机知道远程外壳命令所要送抵的目标即为该 命令的答复源。由此,如果已知的现有远程外壳程序具有一对一特性, 那么远程目标主机没有理由响应于远程外壳命令而返回标识数据。
分布式远程外壳程序允许管理员通过单个客户机端的分布式远 程外壳程序而在多个远程目标主机上运行相同的一个或多个命令。分 布式远程外壳程序的示例是由Armonk, N. Y的国际商用机器(IBM ) 公司提出的分布式夕卜壳命令(distributed shell command, dsh ) 。 dsh 程序是一个用户或客户端程序,它可以用于将远程命令从SPOA发布 到群集/分布式系统中的一个、某些或所有主机。dsh命令为所规定的 每一个目标主机发布一个远程外壳命令,并且返回来自所有目标的格 式化输出,由此可以管理、查看和/或在文件中写入来自目标的远程命 令结果。dsh程序主要以迭代方式驱动基础远程外壳程序的客户机部 分。由此,对远程目标组来说,dsh通过远程外壳程序将同一个命令传送到每一个远程目标主机。从分布式远程外壳程序的角度来看,分布式远程外壳程序参与的是一对II或是一对多的处理,但是基础远程外壳程序(供分布式远程外壳程序使用)则只涉及一对一处理。
为了区分哪个目标返回特定结果,诸如dsh之类的分布式远程外壳程序会将目标主机名与在目标主机的远程外壳中运行的命令的结果相关联。当dsh显示在每个目标的远程外壳中运行的命令的结果时,
该结果可以被唯一识别成是来自特定远程目标主机。对dsh程序输出的目视检查来说,在将其显示于控制台或终端的时候、在对输出进行处理来得到主机专用结果的时候、在出于归档目的而将结果写入文件的时候,以及对那些必须将在远程外壳中运行的命令的结果与特定目标主机相关联的众多其他应用来说,这种处理是非常有利的。但是,在已知的现有系统中,分布式远程外壳程序使用的基础远程外壳程序并没有为分布式远程外壳程序发布的每一个远程外壳客户机/服务器命令提供目标主机标识数据("THID")。为了适应这种缺少THID的情形,在每一个单独的远程外壳应用调用返回结果之后,已知的分布式远程外壳程序可以在这些结果之前附加主机名标识数据,但这需要在SPOA上执行处理。在备选方案中,已知的分布式远程外壳程序可以在远程命令中添加附加命令,例如显示目标組的主机名的请求,以便从目标主机接收主机名数据,但是这样做会改变在目标上远程运行的程序的特性。

发明内容
根据本发明的实施例,客户机向目标主机发送一个远程外壳命令,其中该命令规定了操作系统要在目标主机上执行的操作。目标主
机执行指定的操作并形成一个响应,该响应包括包含目标主机的目标主机标识数据的第一部分,以及显示指定操作的执行结果的第二部分。目标主机将响应发布给客户机。在某些实施例中,接收到的远程外壳命令可以包括一个请求目标主机包含目标主机标识数据的标志。在其他实施例中,可以自动形成针对远程外壳命令的响应,由此,不管远程外壳命令规定的操作,在该响应中都包含目标主机标识数据。 在实施例中,即使在目标主机上接收到来自客户机的远程外壳命令, 目标主机也还是会提供这种目标主机标识数据,并且该响应经由目标 主机与客户机之间的远程外壳的一对一连接而从目标主机发布至客户
机。在其他实施例中,该响应可以是单行输出,其中该输出包括包 含目标主机标识数据的第 一部分,以及显示指定操作的结果的第二部 分。在某些实施例中,客户机可以显示接收到的一个或多个响应,其 中每一个响应都是单行显示的,并且该响应包括包含目标主机标识 数据的第一部分,以及显示在远程外壳命令中规定的操作的结果的第 二部分。


在下文中将会参考下列附图来举例描述本发明的优选实施例,其

图1是显示根据本发明实施例的执行远程外壳命令以便将目标主 机标识数据返回给客户机的系统的示例的框图2是显示根据本发明实施例处理远程外壳命令的方法的示例的 流程图3是显示根据本发明实施例执行分布式远程外壳命令并且包含 客户机以及多个远程目标主机的系统的框图4是显示根据本发明实施例的客户机系统和远程目标主机系统 示例的更多细节的框图;以及
图5是显示具有根据本发明实施例而在目标主机系统上处理远程 外壳命令的程序代码的计算机可读介质的框图。
具体实施例方式
本发明的实施例提供了 一种系统和方法,其中所述系统和方法自 动包含作为输出结果前缀的目标主机标识数据,并且将该输出结果返 回给客户机/服务器远程外壳应用中的客户机。本发明的实施例减少了在分布式远程外壳程序中关联和维护THID所涉及的执行过程以及资 源损耗。在某些特定实施例中,本发明可以应用于dsh程序,以便为 dsh程序发起的每一个远程外壳操作关联和维护THID。通过将服务器 传送的THID当做其正常输出流的一部分,本发明的实施例通过卸载 现有分布式远程外壳程序执行的将THID附加于目标输出之前的处 理,从而提高THID的一对n (多)性能。在使用本发明的这个实施 例中,dsh程序(特别地)和分布式远程外壳程序(通常)不会招致 创建、维护和关联THID所需要的成本。同样,对以其他方式显性请 求作为命令集的一部分的THID的用户来说,通过将THID作为默认 结果的一部分来返回,可以消除用户显性和手动请求该数据的必要性。 本实施例允许群集/分布式系统管理员和/或用户规定远程外壳应 用何时应该或者不应该返回THID,例如通过在远程外壳命令中包含 一个要求目标主机包含THID的标志。在该实施例中,用户可以向指 示服务器返回THID的客户机规定一个选项(标志)。在某些实施例 中,服务器端的远程外壳应用既可以被配置成返回THID,也可以不 被配置成返回THID。在该实施例中,如果服务器上的远程外壳应用 接收到标志,那么当远程外壳应用服务器被配置成返回THID时,这 有可能导致返回THID;否则,服务器可以忽略该标志,并且不会向 客户机返回THID。在某些实施例中,无论客户机是否请求THIID, 服务器都被配置成"始终,,返回THID。在这种情况下,不管用户是否 在远程外壳命令中包含要求返回THID的标志,THID都可以被返回。 由此,不管远程外壳命令规定的是怎样的操作,都可以自动形成针对 远程外壳命令的响应,以便包含目标主机标识数据。在某些实施例中, 包含目标主机标识数据的响应是作为远程外壳操作的一部分而被返回 的。对于要返回THID的情形,管理员可以规定所返回的THID的类 型和格式。在某些实施例中,在目标主机上,远程外壳命令是从客户 机接收的,并且该响应是经由目标主机与客户机之间的远程外壳的一 对一连接而从目标主机发布至客户机。在某些实施例中,该响应包含 单行输出,其中该输出包括包含目标主机标识数据的第一部分,以及显示指定操作结果的第二部分。
图l是显示根据本发明实施例的执行远程外壳命令以便将目标主机标识数据返回给客户机的客户机/服务器示例的框图。图l显示了一
个系统100,该系统包括客户机110和目标主机120,并且这二者通过远程命令协议130耦合在一起。如上所述,诸如目标主机120之类的主机是一个计算机操作系统映像。在某些实施例中,客户机110和目标主机120中的每一个可以是任何类型的信息处理系统,例如个人计算机、工作站、小型计算机、大型机、膝上型计算机、个人数字助理等等。例如,客户机110或目标主机120可以是运行AIX且基于UNIX的系统。在某些实施例中,客户机110或目标主机120都是同一计算设备的一部分。例如,客户机110和目标主机120可以是运行在同一计算设备上的操作系统映像。
在实施例中,客户机110和目标主机120经由网络相互耦合,其中该网路可以是局域网(LAN)、广域网(WAN)、内部网、因特网等等。图1所示的远程命令协议130是一个逻辑连接,该连接可以通过连接客户机110和目标主机120的一个或多个网络来创建,以便实施远程外壳。如上所述,外壳是操作系统的界面,并且远程外壳是通过远程外壳界面而在远程目标主机上打开的操作外壳。正如本领域技术人员所理解的那样,远程外壳可以使用rsh或ssh之类的远程外壳协议来建立,其中rsh是使用TCP端口 514的传输控制协议(TCP),ssh是使用TCP端口 22的TCP。图1显示了 一个从客户机110经由远程命令协议130而被发送到目标主机120的命令111。举例来说,命令111可以是一个rsh命令,它包含了用于规定将要在远程目标主机上执行的操作的参量(argument)。为了进一步说明这个示例,命令111可以是"rsh xyz.com ls",该命令登录xyz.com (目标主机),并且处理ls命令,其中所述ls命令是一个用于列举(目标主机中)目录内容的UNIX⑧命令。当然,用于任何操作系统的其他任何操作系统命令都可以被规定成是远程系统命令的对象。
图1显示了 一个从目标主机120经由远程命令协议130而被发送到客户机110的响应121。在图l所示的示例中,响应121是一个针 对命令lll的响应。如图1所示,响应121包括作为第一部分的目标 主机标识数据125,以及作为第二部分的结果126。继续上述示例,如 果命令111是"rsh xyz.com ls",那么结果126可以是关于目标主机120 上的当前目录内容的列表。目标主机标识数据126可以是远程目标主 机120的主机名,并且可以附加在结果126的前面,从而形成发送到 客户机110的响应,以此作为执行命令lll所规定的操作的结果。关 于目标主机标识数据125的类型以及可提供格式的某些示例是完全合 格的主机名,短主机名、IPv4地址、IPv6地址、目标主机上设置(以 及以若干种可能的日期格式之一返回)的日期、定制的文本文件(返 回文本文件的内容作为THID)或是定制程序(自动运行程序并且返 回的结果作为THID)。
图2是显示根据本发明实施例处理远程外壳命令的方法的示例的 流程图。如图2中的示例所示,诸如客户机IIO之类的客户机检测到 新的远程外壳命令(201)。例如,客户机110上的用户有可能在客户 机110上发布了一个远程外壳命令,诸如规定了要执行的操作(例如 ls )以及将要执行该操作的目标主机(例如目标主机120 )的rsh命令。 然后,如图2所示,客户机110可以在客户机与目标主机之间请求一 个远程外壳(202 ),例如远程命令协议130。在本实例中,客户机110 经由远程命令协议130而与目标主机120建立一对一逻辑连接。然后, 如图l的命令lll所示,客户机可以将命令经由远程外壳发布给目标 主机(203 )。之后,目标主机可以接收该命令并且执行指定操作(204 )。 例如,目标主机可以接收规定了将要执行的操作"ls"的远程外壳命令 rsh。该远程目标主机随后可以确定操作结果(205),该结果可以与 响应一起被发送到客户机。然后,根据这个lsUNIX命令,远程目标 主机可以确定哪些文件处于远程目标主机的当前目录中。在本示例中, 远程目标主机可以回应的是在当前目录中存在一个或多个文件,并且 可以将主才几名附加在该响应的前面。在某些实施例中,远程目标主机 可以确定远程外壳命令是否包含用以表明远程目标主机应该返回THID的标志(206),如果置位了这个标志,那么远程目标主机会将THID附在操作系统命令结果的前面,从而形成响应(207)。然后,如图1的响应121所示,主机可以向客户机发布响应(208)。如上所述,在其他实施例中,THID可以被自动放在前面,以便对任何一个远程外壳命令做出响应。
图3是显示根据本发明实施例执行分布式远程外壳命令并且包含客户机以及多个远程目标主机的系统300的框图。例示的分布式远程命令仅仅是一个示例,它并未暗指与可能具有名称DRSH的远程外壳命令相关的任何关系。如图3所示,图1的客户机110通过远程命令协议(131~133 )耦合到远程目标主机1 ( 321) ~主机3 ( 323 ),并且这其中的每一个主机都是图1的目标主机120的实例。同样,远程命令协议131 远程命令协议133中的每一个都可以是图1的远程命令协议130的实例。虽然本示例显示的是将远程外壳命令提供给三个远程目标主机,但在其他实施例中,客户机也可以对分布式远程外壳命令进行处理,其中该命令规定了任意数量的主机作为命令对象。例如,SPOA可以维护1000个与客户机110相耦合的远程目标主机,并且有可能希望向这1000个远程目标主机中的每一个发送远程外壳命令。如图3所示,客户机110接收分布式远程外壳命令301,其中该命令在本示出的示例中是命令"drsh-n hostl, host2, host3 "date '",。这个命令可以由客户机110的用户提交给客户机110 (例如由用户键入)。命令"drsh hostl-host3 date,,是分布式远程目标主机命令的一个示例,其中该命令请求客户机110向主机1~主机3中的每一个发送作为远程外壳命令的命令"date"。命令"date,,请求目标主机提供在目标主机上维护的当前日期。在本示例中,客户机110上的SPOA有可能已经希望确定是否用正确的当前日期设置远程目标主机1~主机3中的每一个。
如上所述,根据用于分布式远程外壳命令的典型处理,图3显示了由客户机110经由每一个远程外壳131 133发送到每一个主机1 主机3 (321 323)的远程外壳命令"rsh date"。这些命令是用图1中的命令lll表示的。如上所述, 一旦接收到远程外壳命令,那么主机1
主机3 (321-323)中的每一个都可以执行"date,,命令,并且形成一个 结果,这样则需要确定在远程目标主机上维护的当前日期,并且提供 该日期作为输出。根据本发明的实施例,作为在每一个远程目标主机 上执行"rsh"命令的处理的一部分,每一个远程目标主机都可以将主机 名(例如"主机1")附加在响应于远程外壳命令而被提供的输出的前 面。由此,如图3所示,主机l 321发送一个响应"hostl: 3/8/206", 主机2发送一个响应"host2: 3/8/2006",并且主机3 323也发送一个响 应"host3: 6/3/2002"。在图1中,这些响应是用响应121来表示的。在 图3所示的示例中,主机3被设置在与主机1和主机2不同的时间, 并且它返回的日期不同于主机1和主机2返回的日期。
在接收到针对远程外壳命令的一个或多个响应之后,客户机110 可以提供接收到的响应,以此作为输出302。例如,客户机110可以 在屏幕上显示每一个响应,将每一个响应写入一个可打印的文件中等 等。在某些实施例中,客户机110可以在接收到响应时提供每一个响 应作为输出,而不必等待来自其他远程目标主机的其他响应。如图3 的示例所示,客户机110输出的是
hostl: 3/8/2006
host2: 3/8/2006
host3: 6/3/2002
然后,客户机110上的SPOA可以检查输出302,并且确定主机 3被设置在了错误的日期。应该指出的是,在本示例中,输出302的 每一行都以主机名为开始,这样做能使用户确定是哪一个主机发送了 该响应。才艮据本发明的实施例,这个主4几名被附加在主才几上的响应的 前面,以此作为用于响应远程外壳命令的协议的一部分。
图4是显示了根据本发明实施例的图1系统100的一部分的框图, 其中包含了客户机110和远程目标主机120的示例的更多细节。在图 4中,客户机110包括中央处理器(CPU) 112、通信端口113以及算 计可读介质116,并且所有这些设备都是通过总线耦合在一起的。同样,客户机120被显示成包含CPU122、通信端口 123以及计算机可 读介质126,并且所有这些设备都是通过总线耦合在一起的。CPU112 和122可以是任何类型的中央处理器,并且通信端口 113和112可以 是用于在客户机110和目标主机120上发送或接收信息的任何类型的 通信端口,例如以太网端口。在实施例中,网络适配器可以与客户机 110或目标主机120相耦合,以便将其通过居间的专有或公共网络耦 合到其他数据处理系统、远程打印机或存储设备。调制解调器、电缆 调制解调器以及以太网卡则是一些当前可用的网络适配器类型。在图 4中,如上所述,远程命令协议130可以是在一个或多个网络上创建 的逻辑连接,并且该协议在某一端与通信端口 110相耦合,而在另一 端与目标主机120的通信端口 123相耦合。当然,这些设备仅仅是客 户机110和目标主机120的组件示例,在其他实施例中,客户机110 和/或目标主才几120可以包含更多、更少或附加的组件。例如,客户机 110和目标主机120还可以包括系统存储器(例如随机存取存储器和/ 或只读存储器)和大容量存储设备(例如盘驱动器)中的一个或多个, 并且这些存储器可以通过一个或多个总线而耦合在一起。同样,输入/ 输出或1/0设备(包括但不限于键盘、显示器、指示设备等等)可以 直接或者通过居间的I/O控制器而与这两个系统之一或是同时与这两 个系统相耦合。
在实施例中,本发明可以与适合存储和/或执行程序代码的数据 处理系统结合使用,其中该系统的示例可以是客户机110和目标主机 120,并且该系统可以包括至少一个通过系统总线直接或间接耦合到存 储器部件(也可以是其他计算机可用媒体或计算机可读媒体)的处理 器。该存储器部件可以包括在实际执行程序代码的过程中使用的本 地存储器,大容量存储器,以及临时存储至少某些程序代码以便减少 在执行过程中必须从大容量存储器中进行检索的次数的緩存存储器。 如下文中参考图5更详细描述的那样,本发明的实施例可以采用计算 机程序产品的形式,其中所述计算机程序产品可以从计算机可用或计 算机可读介质(例如计算机可读介质116和/或计算机可读介质120)中存取,并且所述计算机可用或计算机可读介质提供可供计算机或任
何指令执行系统(例如CPU112和/或CPU222 )使用或是与之结合使用的程序代码。出于描述目的,计算机可用或计算机可读介质可以是任何一种能够包含、存储、传递、传播或传输那些可供指令执行系统、装置或设备使用或是与之结合使用的程序的装置。计算机可读介质116和计算机可读介质126可以是电子、磁性、光学、电磁、红外或半导体系统(或是装置或设备)或传播介质。关于该计算机可读介质的示例包括半导体或固态存储器、磁带、可拆卸计算机磁盘、随机存取存储器(RAM)、只读存储器(ROM)、刚性磁盘以及光盘。光盘的当前示例包括紧凑型碟片-只读存储器(CD-ROM)、紧凑型碟片_读/写(CD-R7W)以及DVD。在这些实施例中,本发明可以在软件中实施,其中该软件包括但不限于固件、常驻软件、微代码等等。本发明的其他实施例可以采用全硬件实施方式、全软件实施方式或是同时包含软件组件和硬件组件的实施方式的形式。
图4显示了客户机110中用于存储分布式外壳命令处理指令4U和客户机端的外壳命令处理指令113的计算机可读介质116。在实施例中,分布式外壳命令处理指令411是用于执行分布式远程外壳命令的整个程序或是其一部分。该程序可以是客户机110上的操作系统的一部分,或者可以接收来自该操作系统的输入,其中该输入有可能已经确定将要处理分布式远程外壳命令。如上所述,分布式外壳命令处理指令411可以执行所规定的一个或多个远程外壳命令。这些分布式外壳命令处理指令411可以为远程外壳命令中规定的每一个远程目标主机分出 一个远程外壳进程。这些进程可以由客户机端的外壳命令处理指令413来执行,其中该指令将会为每一个远程目标主机创建一个远程外壳(例如远程命令协议130),并且可以将指定的分布式远程
外壳命令发送到远程目标主机。
同样,图4显示了目标主机120中用于存储包括目标主机标识数据处理指令在内的目标端的外壳命令处理指令420的计算机可读介质126。图5是显示了同一计算机可读介质126的框图,并且该图显示了根据本发明实施例的目标端的外壳命令处理指令420的更多细节。在 本示例中,目标端的外壳命令处理指令420包括用于在目标主机系统 120上处理远程外壳命令的程序代码。目标端的外壳命令处理指令420 可以是rsh之类的远程外壳应用的服务器或"守护程序,,部分。如图5 所示,计算机可读介质126还被显示成存储目标主机操作系统指令 501。在某些实施例中, 一旦操作系统指令501接收到来自客户机的远 程外壳命令,那么操作系统指令501可以确定该命令是远程外壳命令, 并且可以让目标端的外壳命令处理指令420执行这个远程外壳命令。 如图5所示,操作系统指令501包括用于确定接收到远程外壳命令的 指令521。
如图5所示,目标端的外壳命令处理指令420包括计算机可用产 品代码,例如用于使操作系统执行远程外壳操作的指令522,目标主 机标识数据指令422,以及用于向客户机发布响应的指令524。在某些 实施例中,目标端的外壳命令处理指令420通过确定远程外壳命令(例 如ls操作)规定的一个或多个基础操作以及在远程外壳命令中是否规 定任何选项来处理远程外壳命令。本领域技术人员可以理解,用于使 操作系统执行远程外壳操作的指令522会使操作系统指令521执行基 础远程外壳命令,并且操作系统指令501将会产生一个结果,例如表 明已经执行了操作的指示,因为错误条件而不能执行操作的指示,和/ 或请求由操作返回的某些数据。在以上示例中,搮作系统501将会执 行ls指令,并且将会返回当前目录中的文件的列表。在本发明的某些 实施例中,目标端的外壳命令处理指令520将会形成一个针对远程外 壳命令的响应,其中在本示例中,该响应将会包含当前目录中的文件 的列表。根据本发明的实施例,目标主机标识数据指令422会将目标 主机标识数据附在该响应的前面。如上所述,将THID添加到响应中 的处理既可以作为远程外壳协议的 一部分来自动执行,也可以在确定 已经选择了远程外壳命令中的选项的时候执行。在某些实施例中,所 返回的远程外壳数据的类型可以作为在远程外壳协议中发送的选项的 一部分而被包含。然后,如上所述,用于向客户机发布响应的指令524会将该响应发布给客户机110。
根据本发明的实施例,群集系统管理(CSM)软件提供了一个使 用操作系统上的基础远程命令的分布式远程外壳程序。执行过程经由 外部远程外壳程序(例如AIX rsh、 OpenSSH)而被分发给一个或多 个远程目标主机,并且其增强之处在于允许在执行时在输出的每一行 上预先挂起远程目标主机的名称(也就是目标主机)。这种支持可以 由与操作系统一起包含的任何远程外壳程序(例如结合AIX的rsh)
来提供,或者在第三方远程外壳程序中提供(例如OpenSSH)。借助 本发明,分布式命令执行工具(例如IBM CSM dsh )可以使用本发明 的实施例来卸载远程外壳命令的输出处理,而不是由其自身来处理该 输出,由此将会改善执行时间并且减少存储器使用率(这是因为处理 远程外壳输出将不再需要緩存器或阵列)。实验室测试已经表明,通 过使用本发明的实施例,可以显著节省资源(存储器和处理时间), 其中该资源是与以其他方式为客户机预先挂起目标主机标识数据所需 要的输出处理时间相关的资源。
在本发明的某些实施例中,其中可以为远程外壳客户机提供一个 开关/标志/指示(例如-P),并且将其发送到远程服务器守护进程。该 指示(例如-P)可以指示服务器守护进程使用服务器守护进程的主机 名来预先挂起发送至客户机的每一行输出。然后,在输出处理中包含 主机名的处理可以在与客户机相对的远程系统上执行,并且这样做可 以节约本地资源。正如本领域技术人员所了解的那样,对rsh命令来 说,它的一个示例可以是提供如下输出的"弁rsh hostl-Pwho":
Hostl: admin :0 Sep 15 07:22
Hostl: seven pts/2 Sep 15 10:55
Hostl: la眼pts/3 Sep 15 10:55
Hostl: jill pts/4 Sep 15 10:56
在本实例中,与dsh自己拥有解译、处理和预先挂起远程目标主 机名的高成本职责不同,远程目标主机上的基础rsh服务器守护进程 会将远程目标主机名添加于其向请求客户机发送的输出之中,由此节约dsh中的大量处理时间。这种处理非常重要,因为输出处理被从运行dsh的主机卸载(也就是单个主机)到了每一个负责提供结果的群集主机上。另一个实例可以是"# dsh —n host[l-2000] -o "-P" who",其中本领域技术人员可以理解,它可以提供下列输出
Hostl: admin :0 Sep 15 07:22
Hostl: seven pts/2 Sep 15 10:55
Hostl: laura pts/3 Sep 15 10:55
Hostl: jill pts/4 Sep 15 10:56
Host2: rover :0 Sep 15 07:22
Host2: fluffy pts/2 Sep 15 10:55
Host2: kiaka pts/3 Sep 15 10:55
Host2: kiara pts/4 Sep 15 10:56
Host2: ned pt/6 Sep 15 09:33
Host2000: admin :0Sep 15 07:22Host2000: aybabtu pts/2 Sep 15 10:55
在本示例中,dsh识别-P的存在性,并且抑制其自身的输出处理,以及依赖于rsh的输出。尽管如此,应该指出的是,这仅仅是结合dsh的可能实施方式的一个示例。而这也并不是为了给dsh强加实施方式。
根据本发明的实施例,在服务输出流中添加可选数据,以便提供自动包含附加主机标识数据的手段,其中该附加主机标识数据是附在服务器提供的输出(结果)前面的。举例来说,服务器可以是BSD r命令rsh类型(远程外壳)的远程外壳服务,或者是安全外壳(ssh)协议标准的远程安全外壳。根据实施例,服务器是与远程系统对接的"窗口,,或接口,由此,rsh或ssh类型的客户机将会提供一个远程外壳界面,并且其中用户会将一个或多个操作系统、外壳或其他程序调用发送到远程外壳。
本发明的实施例并不局限于特定的分布式外壳实施方式。本发明的实施方式可以概括成任何一种调用远程外壳客户机程序的分布式外
壳程序,其中举例来说,所述远程外壳客户机程序可以是BSDrsh或 OpenSSH的ssh (安全外壳)。可以了解的是,本发明的实施例既不 限于特定的物理、虛拟设备,也不限于特定的网络,并且举例来说, 本发明的实施例可以应用于任何基于网际协议(IP)的网络(小型区 域网,广域网,无线网络,虚拟网络等等)。所公开的任何实施例都 可以与所显示和/或描述的一个或几个其他实施例相结合。这对这些实 施例的 一个或多个特征来说都是成立的。
权利要求
1. 一种方法,包括在目标主机上接收来自客户机的远程外壳命令,其中所接收的远程外壳命令规定了要由目标主机上的操作系统执行的操作;在目标主机上执行所规定的操作;在目标主机上形成一个响应,其中该响应包括包含目标主机的目标主机标识数据的第一部分,以及显示所规定的操作的执行结果的第二部分;以及将响应从目标主机发布到客户机。
2,根据权利要求1所述的方法,其中所接收的远程外壳命令包 括一个请求目标主机包含目标主机标识数据的标志。
3. 根据权利要求1所述的方法,其中针对远程外壳命令的响应 是自动形成的,由此,不管远程外壳命令规定的操作,该响应都包含 目标主纟几标识数据。
4. 根据权利要求1所述的方法,其中包含目标主机标识数据的 响应是在远程命令协议内部作为输出响应的一部分而被返回的。
5. 根据权利要求1所述的方法,其中该响应包括一单行输出, 该单行输出包括包含目标主机标识数据的第一部分,以及显示所规 定的操作的结果的第二部分。
6. 根据权利要求1所述的方法,其中远程外壳命令是在目标主 机上从客户机接收的,并且响应是从目标主机经由目标主机与客户机 之间的远程外壳一对一连接而被发布至客户机的。
7. —种计算机程序产品,包括具有在其上存储有指令的计算机 可读介质,当由处理器执行时,所述指令将使处理器执行一种方法, 该方法包括在目标主机上接收来自客户机的远程外壳命令,其中所接收的远 程外壳命令规定了要由目标主机上的操作系统执行的操作; 在目标主机上执行所规定的操作;在目标主机上形成一个响应,其中该响应包括包含目标主^/li的 目标主机标识数据的第一部分,以及显示所规定的操作的执行结果的第二部分;以及将响应从目标主才仏发布到客户才;u。
8. 根据权利要求7所述的计算机程序产品,其中所接收的远程外壳命令包括一个请求目标主机包含目标主机标识数据的标志。
9. 根据权利要求7所述的计算机程序产品,其中针对远程外壳 命令的响应是自动形成的,由此,不管远程外壳命令规定的操作,该 响应都包含目标主机标识数据。
10. 根据权利要求7所述的计算机程序产品,其中包含目标主机 标识数据的响应是在远程命令协议内部作为输出响应的一部分而被返 回的。
11. 根据权利要求7所述的计算机程序产品,其中该响应包括一 单行输出,该单行输出包括包含目标主机标识数据的第一部分,以 及显示所规定的操作的结果的第二部分。
12. 根据权利要求7所述的计算机程序产品,其中远程外壳命令 是在目标主机上从客户机接收的,并且响应是从目标主机经由目标主 机与客户机之间的一对一连接而被发布至客户机的。
13. —种计算机程序产品,包括具有在其上存储有指令的计算机 可读介质,当由处理器执行时,所述指令将使处理器执行一种方法, 该方法包括在客户机上确定要执行分布式远程外壳命令,其中所述分布式远程外壳命令规定了一个命令以及多个目标主机;以及在客户机上为多个目标主机中的每一个处理命令,其中在客户机上为每一个目标主机处理命令包括在客户机与目标主机之间建立远程命令协议;在远程命令协议内部向该目标主机发布作为远程外壳命令的命 令;以及在客户机上接收对来自该目标主机的命令的响应,其中该响应包括包含该目标主机的目标主机标识数据的第一部分,以及显示命令中规定的操作的结果的第二部分。
14. 根据权利要求13所述的计算机程序产品,其中该命令包括一个请求目标主机包含目标主机标识数据的标志。
15. 根据权利要求13所述的计算机程序产品,其中目标主机标识数据包括目标主机的主机名。
16. 根据权利要求13所述的计算机程序产品,其中该方法还包括在客户机上显示接收到的一个或多个响应,其中所显示的每一个这样的响应都是在单行上显示的,并且其中所显示的每一个这样的响应都包括包含目标主机标识数据的第一部分,以及显示远程外壳命令所规定的操作结果的第二部分。
17. 根据权利要求13所述的计算机程序产品,其中分布式远程外壳命令是dsh命令。
18. 根据权利要求13所述的计算机程序产品,其中包含目标主机标识数据的响应是在远程命令协议内部作为输出响应的一部分而被返回的。
全文摘要
本发明涉及用于处理远程外壳命令的方法和装置。本发明公开的是用于处理分布式远程外壳命令的方法和装置。在某些实施例中,目标主机接收来自客户机的远程外壳命令,其中该命令规定了将要由目标主机上的操作系统执行的操作。目标主机执行所规定的操作,并且形成一个响应,该响应包括包含目标主机的目标主机标识数据的第一部分,以及显示所规定的操作的结果的第二部分。该目标主机将响应发布给客户机。
文档编号G06F9/46GK101460925SQ200780018445
公开日2009年6月17日 申请日期2007年5月18日 优先权日2006年6月6日
发明者C·德罗贝尔提斯, G·贝伦德 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1