CN101460925A - 用于处理远程外壳命令的方法和装置 - Google Patents
用于处理远程外壳命令的方法和装置 Download PDFInfo
- Publication number
- CN101460925A CN101460925A CN200780018445.0A CN200780018445A CN101460925A CN 101460925 A CN101460925 A CN 101460925A CN 200780018445 A CN200780018445 A CN 200780018445A CN 101460925 A CN101460925 A CN 101460925A
- Authority
- CN
- China
- Prior art keywords
- destination host
- response
- remote
- client computer
- remote shell
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/549—Remote execution
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明涉及用于处理远程外壳命令的方法和装置。本发明公开的是用于处理分布式远程外壳命令的方法和装置。在某些实施例中,目标主机接收来自客户机的远程外壳命令,其中该命令规定了将要由目标主机上的操作系统执行的操作。目标主机执行所规定的操作,并且形成一个响应,该响应包括:包含目标主机的目标主机标识数据的第一部分,以及显示所规定的操作的结果的第二部分。该目标主机将响应发布给客户机。
Description
技术领域
本发明主要涉及为客户机/服务器的运用而设计的计算机网络和软件应用。特别地,本发明涉及一种用于向客户机提供作为对远程外壳应用的响应的一部分的目标主机标识数据的系统和方法。
背景技术
客户机/服务器模型是一种计算架构,它包含从一个或多个服务器进程请求服务的客户机进程(程序,通常被称为用户命令或客户机命令)。在客户机/服务器架构中,一台计算机上的程序向另一台计算机上的程序发送请求并等待响应。例如,客户机可以向服务器发送请求,并且等待响应到来。相应地,服务器可以等待来自客户机的请求、接收该请求、处理该请求、并且将结果返回给客户机(也就是用响应进行答复)。一旦接收到来自服务器的响应,那么客户机可以酌情执行附加的响应处理。
现代的计算和信息技术环境使用了群集和分布式计算机系统,该系统可以延伸至成百上千的主机,其中主机是一个计算机操作系统(OS)映像,例如使用了或操作系统的映像。一个或多个分布式计算机系统/群集管理员可以负责从单个管理点(“SPOA”)管理众多群集和分布式计算机系统。这些管理员通常需要使用客户机/服务器远程“外壳(shell)”界面(也被称为外壳程序或外壳应用)来管理和监视分布式/群集系统中的主机,该界面则是一个提供用于打开远程目标主机上的外壳的手段的客户机/服务器应用。外壳是操作系统界面,“外壳脚本”是保存在文件中的外壳和操作系统命令序列。“命令”是用于执行诸如返回当前日期之类的单个操作或是多个操作(例如扫描特定字符规则字串(character pattern)的输出,对多列进行格式化匹配,在结果中添加日期和时间,以及将结果写入文件)的计算机程序。在操作系统中可用的一些命令示例是:“date”、“dsh”和“rsh”命令。“dsh”和“rsh”命令都在下文中进行了详细讨论,并且被设计用于接受其它作为输入的命令和随后在远程目标主机上运行这些命令。
命令可以在远程外壳中运行。远程外壳是在远程目标主机上通过远程外壳界面打开的操作外壳。远程外壳应用的示例是包含客户机部分和服务器或“守护进程(daemon)”部分的“rsh”。远程外壳的另一个示例是ssh(安全外壳)。远程外壳协议是一个供远程外壳应用使用以使客户机部分与服务器部分进行通信的特殊协议。该远程外壳协议允许客户机通过服务器来建立远程外壳。众所周知的远程外壳协议及其在远程外壳应用中的实施方式(例如AIX操作系统中的rsh/rshd,以及OpenSSH组织使用的ssh/sshd)被设计成让客户机(远程外壳应用的客户机部分)与单个服务器上的目标主机(远程外壳应用的服务器部分)取得联系。这被称为是一对一处理:客户机一次与目标主机上的一个服务器(守护进程)相连。由于远程外壳程序具有一对一特性,因此,客户机知道远程外壳命令所要送抵的目标即为该命令的答复源。由此,如果已知的现有远程外壳程序具有一对一特性,那么远程目标主机没有理由响应于远程外壳命令而返回标识数据。
分布式远程外壳程序允许管理员通过单个客户机端的分布式远程外壳程序而在多个远程目标主机上运行相同的一个或多个命令。分布式远程外壳程序的示例是由Armonk,N.Y的国际商用机器公司提出的分布式外壳命令(distributed shell command,dsh)。dsh程序是一个用户或客户端程序,它可以用于将远程命令从SPOA发布到群集/分布式系统中的一个、某些或所有主机。dsh命令为所规定的每一个目标主机发布一个远程外壳命令,并且返回来自所有目标的格式化输出,由此可以管理、查看和/或在文件中写入来自目标的远程命令结果。dsh程序主要以迭代方式驱动基础远程外壳程序的客户机部分。由此,对远程目标组来说,dsh通过远程外壳程序将同一个命令传送到每一个远程目标主机。从分布式远程外壳程序的角度来看,分布式远程外壳程序参与的是一对n或是一对多的处理,但是基础远程外壳程序(供分布式远程外壳程序使用)则只涉及一对一处理。
为了区分哪个目标返回特定结果,诸如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的类型和格式。在某些实施例中,在目标主机上,远程外壳命令是从客户机接收的,并且该响应是经由目标主机与客户机之间的远程外壳的一对一连接而从目标主机发布至客户机。在某些实施例中,该响应包含单行输出,其中该输出包括:包含目标主机标识数据的第一部分,以及显示指定操作结果的第二部分。
图1是显示根据本发明实施例的执行远程外壳命令以便将目标主机标识数据返回给客户机的客户机/服务器示例的框图。图1显示了一个系统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命令是一个用于列举(目标主机中)目录内容的命令。当然,用于任何操作系统的其他任何操作系统命令都可以被规定成是远程系统命令的对象。
图1显示了一个从目标主机120经由远程命令协议130而被发送到客户机110的响应121。在图1所示的示例中,响应121是一个针对命令111的响应。如图1所示,响应121包括作为第一部分的目标主机标识数据125,以及作为第二部分的结果126。继续上述示例,如果命令111是“rsh xyz.com ls”,那么结果126可以是关于目标主机120上的当前目录内容的列表。目标主机标识数据126可以是远程目标主机120的主机名,并且可以附加在结果126的前面,从而形成发送到客户机110的响应,以此作为执行命令111所规定的操作的结果。关于目标主机标识数据125的类型以及可提供格式的某些示例是完全合格的主机名,短主机名、IPv4地址、IPv6地址、目标主机上设置(以及以若干种可能的日期格式之一返回)的日期、定制的文本文件(返回文本文件的内容作为THID)或是定制程序(自动运行程序并且返回的结果作为THID)。
图2是显示根据本发明实施例处理远程外壳命令的方法的示例的流程图。如图2中的示例所示,诸如客户机110之类的客户机检测到新的远程外壳命令(201)。例如,客户机110上的用户有可能在客户机110上发布了一个远程外壳命令,诸如规定了要执行的操作(例如ls)以及将要执行该操作的目标主机(例如目标主机120)的rsh命令。然后,如图2所示,客户机110可以在客户机与目标主机之间请求一个远程外壳(202),例如远程命令协议130。在本实例中,客户机110经由远程命令协议130而与目标主机120建立一对一逻辑连接。然后,如图1的命令111所示,客户机可以将命令经由远程外壳发布给目标主机(203)。之后,目标主机可以接收该命令并且执行指定操作(204)。例如,目标主机可以接收规定了将要执行的操作“ls”的远程外壳命令rsh。该远程目标主机随后可以确定操作结果(205),该结果可以与响应一起被发送到客户机。然后,根据这个ls UNIX命令,远程目标主机可以确定哪些文件处于远程目标主机的当前目录中。在本示例中,远程目标主机可以回应的是在当前目录中存在一个或多个文件,并且可以将主机名附加在该响应的前面。在某些实施例中,远程目标主机可以确定远程外壳命令是否包含用以表明远程目标主机应该返回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 host1,host2,host3"date"”。这个命令可以由客户机110的用户提交给客户机110(例如由用户键入)。命令“drsh host1-host3 date”是分布式远程目标主机命令的一个示例,其中该命令请求客户机110向主机1~主机3中的每一个发送作为远程外壳命令的命令“date”。命令“date”请求目标主机提供在目标主机上维护的当前日期。在本示例中,客户机110上的SPOA有可能已经希望确定是否用正确的当前日期设置远程目标主机1~主机3中的每一个。
如上所述,根据用于分布式远程外壳命令的典型处理,图3显示了由客户机110经由每一个远程外壳131~133发送到每一个主机1~主机3(321~323)的远程外壳命令“rsh date”。这些命令是用图1中的命令111表示的。如上所述,一旦接收到远程外壳命令,那么主机1~主机3(321~323)中的每一个都可以执行“date”命令,并且形成一个结果,这样则需要确定在远程目标主机上维护的当前日期,并且提供该日期作为输出。根据本发明的实施例,作为在每一个远程目标主机上执行“rsh”命令的处理的一部分,每一个远程目标主机都可以将主机名(例如“主机1”)附加在响应于远程外壳命令而被提供的输出的前面。由此,如图3所示,主机1321发送一个响应“host1:3/8/206”,主机2发送一个响应“host2:3/8/2006”,并且主机3323也发送一个响应“host3:6/3/2002”。在图1中,这些响应是用响应121来表示的。在图3所示的示例中,主机3被设置在与主机1和主机2不同的时间,并且它返回的日期不同于主机1和主机2返回的日期。
在接收到针对远程外壳命令的一个或多个响应之后,客户机110可以提供接收到的响应,以此作为输出302。例如,客户机110可以在屏幕上显示每一个响应,将每一个响应写入一个可打印的文件中等等。在某些实施例中,客户机110可以在接收到响应时提供每一个响应作为输出,而不必等待来自其他远程目标主机的其他响应。如图3的示例所示,客户机110输出的是:
host1:3/8/2006
host2:3/8/2006
host3:6/3/2002
然后,客户机110上的SPOA可以检查输出302,并且确定主机3被设置在了错误的日期。应该指出的是,在本示例中,输出302的每一行都以主机名为开始,这样做能使用户确定是哪一个主机发送了该响应。根据本发明的实施例,这个主机名被附加在主机上的响应的前面,以此作为用于响应远程外壳命令的协议的一部分。
图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还可以包括系统存储器(例如随机存取存储器和/或只读存储器)和大容量存储设备(例如盘驱动器)中的一个或多个,并且这些存储器可以通过一个或多个总线而耦合在一起。同样,输入/输出或I/O设备(包括但不限于键盘、显示器、指示设备等等)可以直接或者通过居间的I/O控制器而与这两个系统之一或是同时与这两个系统相耦合。
在实施例中,本发明可以与适合存储和/或执行程序代码的数据处理系统结合使用,其中该系统的示例可以是客户机110和目标主机120,并且该系统可以包括至少一个通过系统总线直接或间接耦合到存储器部件(也可以是其他计算机可用媒体或计算机可读媒体)的处理器。该存储器部件可以包括:在实际执行程序代码的过程中使用的本地存储器,大容量存储器,以及临时存储至少某些程序代码以便减少在执行过程中必须从大容量存储器中进行检索的次数的缓存存储器。如下文中参考图5更详细描述的那样,本发明的实施例可以采用计算机程序产品的形式,其中所述计算机程序产品可以从计算机可用或计算机可读介质(例如计算机可读介质116和/或计算机可读介质120)中存取,并且所述计算机可用或计算机可读介质提供可供计算机或任何指令执行系统(例如CPU112和/或CPU222)使用或是与之结合使用的程序代码。出于描述目的,计算机可用或计算机可读介质可以是任何一种能够包含、存储、传递、传播或传输那些可供指令执行系统、装置或设备使用或是与之结合使用的程序的装置。计算机可读介质116和计算机可读介质126可以是电子、磁性、光学、电磁、红外或半导体系统(或是装置或设备)或传播介质。关于该计算机可读介质的示例包括:半导体或固态存储器、磁带、可拆卸计算机磁盘、随机存取存储器(RAM)、只读存储器(ROM)、刚性磁盘以及光盘。光盘的当前示例包括:紧凑型碟片-只读存储器(CD-ROM)、紧凑型碟片-读/写(CD-R/W)以及DVD。在这些实施例中,本发明可以在软件中实施,其中该软件包括但不限于固件、常驻软件、微代码等等。本发明的其他实施例可以采用全硬件实施方式、全软件实施方式或是同时包含软件组件和硬件组件的实施方式的形式。
图4显示了客户机110中用于存储分布式外壳命令处理指令411和客户机端的外壳命令处理指令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 host1-P who”:
Host1:admin:0 Sep 15 07:22
Host1:seven pts/2 Sep 15 10:55
Host1:laura pts/3 Sep 15 10:55
Host1:jill pts/4 Sep 15 10:56
在本实例中,与dsh自己拥有解译、处理和预先挂起远程目标主机名的高成本职责不同,远程目标主机上的基础rsh服务器守护进程会将远程目标主机名添加于其向请求客户机发送的输出之中,由此节约dsh中的大量处理时间。这种处理非常重要,因为输出处理被从运行dsh的主机卸载(也就是单个主机)到了每一个负责提供结果的群集主机上。另一个实例可以是“#dsh-n host[1-2000]-o"-P"who”,其中本领域技术人员可以理解,它可以提供下列输出:
Host1:admin:0 Sep 15 07:22
Host1:seven pts/2 Sep 15 10:55
Host1:laura pts/3 Sep 15 10:55
Host1: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:0 Sep 15 07:22
…
Host2000:aybabtu pts/2 Sep 15 10:55
在本示例中,dsh识别-P的存在性,并且抑制其自身的输出处理,以及依赖于rsh的输出。尽管如此,应该指出的是,这仅仅是结合dsh的可能实施方式的一个示例。而这也并不是为了给dsh强加实施方式。
根据本发明的实施例,在服务输出流中添加可选数据,以便提供自动包含附加主机标识数据的手段,其中该附加主机标识数据是附在服务器提供的输出(结果)前面的。举例来说,服务器可以是BSD r命令rsh类型(远程外壳)的远程外壳服务,或者是安全外壳(ssh)协议标准的远程安全外壳。根据实施例,服务器是与远程系统对接的“窗口”或接口,由此,rsh或ssh类型的客户机将会提供一个远程外壳界面,并且其中用户会将一个或多个操作系统、外壳或其他程序调用发送到远程外壳。
本发明的实施例并不局限于特定的分布式外壳实施方式。本发明的实施方式可以概括成任何一种调用远程外壳客户机程序的分布式外壳程序,其中举例来说,所述远程外壳客户机程序可以是BSD rsh或OpenSSH的ssh(安全外壳)。可以了解的是,本发明的实施例既不限于特定的物理、虚拟设备,也不限于特定的网络,并且举例来说,本发明的实施例可以应用于任何基于网际协议(IP)的网络(小型区域网,广域网,无线网络,虚拟网络等等)。所公开的任何实施例都可以与所显示和/或描述的一个或几个其他实施例相结合。这对这些实施例的一个或多个特征来说都是成立的。
Claims (18)
1.一种方法,包括:
在目标主机上接收来自客户机的远程外壳命令,其中所接收的远程外壳命令规定了要由目标主机上的操作系统执行的操作;
在目标主机上执行所规定的操作;
在目标主机上形成一个响应,其中该响应包括:包含目标主机的目标主机标识数据的第一部分,以及显示所规定的操作的执行结果的第二部分;以及
将响应从目标主机发布到客户机。
2.根据权利要求1所述的方法,其中所接收的远程外壳命令包括一个请求目标主机包含目标主机标识数据的标志。
3.根据权利要求1所述的方法,其中针对远程外壳命令的响应是自动形成的,由此,不管远程外壳命令规定的操作,该响应都包含目标主机标识数据。
4.根据权利要求1所述的方法,其中包含目标主机标识数据的响应是在远程命令协议内部作为输出响应的一部分而被返回的。
5.根据权利要求1所述的方法,其中该响应包括一单行输出,该单行输出包括:包含目标主机标识数据的第一部分,以及显示所规定的操作的结果的第二部分。
6.根据权利要求1所述的方法,其中远程外壳命令是在目标主机上从客户机接收的,并且响应是从目标主机经由目标主机与客户机之间的远程外壳一对一连接而被发布至客户机的。
7.一种计算机程序产品,包括具有在其上存储有指令的计算机可读介质,当由处理器执行时,所述指令将使处理器执行一种方法,该方法包括:
在目标主机上接收来自客户机的远程外壳命令,其中所接收的远程外壳命令规定了要由目标主机上的操作系统执行的操作;
在目标主机上执行所规定的操作;
在目标主机上形成一个响应,其中该响应包括:包含目标主机的目标主机标识数据的第一部分,以及显示所规定的操作的执行结果的第二部分;以及
将响应从目标主机发布到客户机。
8.根据权利要求7所述的计算机程序产品,其中所接收的远程外壳命令包括一个请求目标主机包含目标主机标识数据的标志。
9.根据权利要求7所述的计算机程序产品,其中针对远程外壳命令的响应是自动形成的,由此,不管远程外壳命令规定的操作,该响应都包含目标主机标识数据。
10.根据权利要求7所述的计算机程序产品,其中包含目标主机标识数据的响应是在远程命令协议内部作为输出响应的一部分而被返回的。
11.根据权利要求7所述的计算机程序产品,其中该响应包括一单行输出,该单行输出包括:包含目标主机标识数据的第一部分,以及显示所规定的操作的结果的第二部分。
12.根据权利要求7所述的计算机程序产品,其中远程外壳命令是在目标主机上从客户机接收的,并且响应是从目标主机经由目标主机与客户机之间的一对一连接而被发布至客户机的。
13.一种计算机程序产品,包括具有在其上存储有指令的计算机可读介质,当由处理器执行时,所述指令将使处理器执行一种方法,该方法包括:
在客户机上确定要执行分布式远程外壳命令,其中所述分布式远程外壳命令规定了一个命令以及多个目标主机;以及
在客户机上为多个目标主机中的每一个处理命令,其中在客户机上为每一个目标主机处理命令包括:
在客户机与目标主机之间建立远程命令协议;
在远程命令协议内部向该目标主机发布作为远程外壳命令的命令;以及
在客户机上接收对来自该目标主机的命令的响应,其中该响应包括:包含该目标主机的目标主机标识数据的第一部分,以及显示命令中规定的操作的结果的第二部分。
14.根据权利要求13所述的计算机程序产品,其中该命令包括一个请求目标主机包含目标主机标识数据的标志。
15.根据权利要求13所述的计算机程序产品,其中目标主机标识数据包括目标主机的主机名。
16.根据权利要求13所述的计算机程序产品,其中该方法还包括:在客户机上显示接收到的一个或多个响应,其中所显示的每一个这样的响应都是在单行上显示的,并且其中所显示的每一个这样的响应都包括:包含目标主机标识数据的第一部分,以及显示远程外壳命令所规定的操作结果的第二部分。
17.根据权利要求13所述的计算机程序产品,其中分布式远程外壳命令是dsh命令。
18.根据权利要求13所述的计算机程序产品,其中包含目标主机标识数据的响应是在远程命令协议内部作为输出响应的一部分而被返回的。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/422,361 US20070282964A1 (en) | 2006-06-06 | 2006-06-06 | Method and apparatus for processing remote shell commands |
US11/422,361 | 2006-06-06 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101460925A true CN101460925A (zh) | 2009-06-17 |
Family
ID=38515432
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200780018445.0A Pending CN101460925A (zh) | 2006-06-06 | 2007-05-18 | 用于处理远程外壳命令的方法和装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20070282964A1 (zh) |
CN (1) | CN101460925A (zh) |
WO (1) | WO2007141124A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102571953A (zh) * | 2010-12-31 | 2012-07-11 | 宏正自动科技股份有限公司 | 远程管理方法及其装置 |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8627342B2 (en) * | 2008-01-31 | 2014-01-07 | Paul Michael Tapper | Multi-machine shell |
CN102271127B (zh) * | 2010-06-07 | 2015-01-14 | 深圳市世纪光速信息技术有限公司 | 获取相关信息的方法和装置 |
US8521808B2 (en) * | 2010-07-27 | 2013-08-27 | International Business Machines Corporation | Uploading and executing command line scripts |
US9323819B1 (en) * | 2010-12-29 | 2016-04-26 | Emc Corporation | Facilitating valid data entry |
CN103685399B (zh) | 2012-09-17 | 2018-03-23 | 腾讯科技(深圳)有限公司 | 一种登录类Unix虚拟容器的方法、装置和系统 |
US9736218B2 (en) | 2013-04-24 | 2017-08-15 | Blackberry Limited | Device, system and method for processing character data |
EP2796998B1 (en) * | 2013-04-24 | 2019-07-03 | BlackBerry Limited | Device, system and method for processing character data |
US10397232B2 (en) * | 2015-06-25 | 2019-08-27 | Amazon Technologies, Inc. | Controlling user access to command execution |
CA3006355A1 (en) * | 2015-11-27 | 2017-06-01 | Cadens Imagerie Medicale Inc. | Method and system for executing a function for processing data using a server |
US20190012161A1 (en) * | 2017-07-07 | 2019-01-10 | Bank Of America Corporation | Distributed and self-deleting apparatus for fast software deployment and upgrade in a network |
US10996973B2 (en) | 2018-11-13 | 2021-05-04 | International Business Machines Corporation | Executing commands in a virtual environment |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5590288A (en) * | 1991-07-30 | 1996-12-31 | Restaurant Technology, Inc. | Distributed data processing system and method utilizing peripheral device polling and layered communication software |
US5517668A (en) * | 1994-01-10 | 1996-05-14 | Amdahl Corporation | Distributed protocol framework |
JPH09231156A (ja) * | 1996-02-28 | 1997-09-05 | Nec Corp | プログラム受信機能付遠隔実行装置 |
JP2001514778A (ja) * | 1997-03-13 | 2001-09-11 | マーク・エム・ホイットニー | メッセージ・キューイング・ファシリティを含むネットワーク・トランザクションをメインフレームからインテリジェントな入出力装置にオフロードするシステム及び方法 |
EP0892346A2 (en) * | 1997-07-15 | 1999-01-20 | International Business Machines Corporation | Propagation of a command status code from a remote unit to a host unit |
US6292765B1 (en) * | 1997-10-20 | 2001-09-18 | O-In Design Automation | Method for automatically searching for functional defects in a description of a circuit |
US6636503B1 (en) * | 1998-10-06 | 2003-10-21 | Siemens Information & Communication Networks, Inc. | Method and system for communicating with a telecommunications switch |
US7171484B1 (en) * | 2000-05-24 | 2007-01-30 | Krause Michael R | Reliable datagram transport service |
US6721808B1 (en) * | 2000-09-13 | 2004-04-13 | Cisco Technology, Inc. | Real-time creation of distributed object shell commands |
US8549114B2 (en) * | 2002-06-12 | 2013-10-01 | Bladelogic, Inc. | Method and system for model-based heterogeneous server configuration management |
US20060021028A1 (en) * | 2003-03-28 | 2006-01-26 | Brunette Glenn M | System and method for adaptive policy and dependency-based system security audit |
US20060026601A1 (en) * | 2004-07-29 | 2006-02-02 | Solt David G Jr | Executing commands on a plurality of processes |
JP4325524B2 (ja) * | 2004-09-29 | 2009-09-02 | 日本電気株式会社 | スイッチ装置とシステム並びにバックアップ及びリストア方法とプログラム |
US7505464B2 (en) * | 2005-08-30 | 2009-03-17 | Cisco Technology, Inc. | Method of identifying a home gateway using network traffic sniffing and apparatus employing the same |
-
2006
- 2006-06-06 US US11/422,361 patent/US20070282964A1/en not_active Abandoned
-
2007
- 2007-05-18 WO PCT/EP2007/054821 patent/WO2007141124A1/en active Application Filing
- 2007-05-18 CN CN200780018445.0A patent/CN101460925A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102571953A (zh) * | 2010-12-31 | 2012-07-11 | 宏正自动科技股份有限公司 | 远程管理方法及其装置 |
Also Published As
Publication number | Publication date |
---|---|
US20070282964A1 (en) | 2007-12-06 |
WO2007141124A1 (en) | 2007-12-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101460925A (zh) | 用于处理远程外壳命令的方法和装置 | |
US6973620B2 (en) | Method and apparatus for providing user support based on contextual information | |
US6871322B2 (en) | Method and apparatus for providing user support through an intelligent help agent | |
CN109395400B (zh) | 跨游戏的聊天信息处理方法及装置、电子设备、存储介质 | |
JP4672870B2 (ja) | ホストシステムにある情報に直接トランザクションアクセスを行うための方法および装置 | |
US20030043178A1 (en) | Initiation of interactive support from a computer desktop | |
CN102394872B (zh) | 数据通信协议 | |
US7660845B2 (en) | Methods and apparatus for verifying context participants in a context management system in a networked environment | |
US20040098476A1 (en) | Method and system for changing a collaborating client behavior according to context | |
WO2019019864A1 (zh) | 嵌入式自助终端的通信系统、方法及装置 | |
CN106557288B (zh) | 一种获取打印数据的方法及装置 | |
US6931447B1 (en) | Remote hard copy apparatus control including firewall penetrating protocols | |
JP4233635B2 (ja) | アプリケーション・インタフェースに持続性を提供するための装置および方法 | |
US6976067B2 (en) | Method and apparatus for providing entitlement information for interactive support | |
JP2002157218A (ja) | 同時に複数のユーザによってデータ・ストリームにアクセスするための装置及び方法 | |
US20030037171A1 (en) | System and method for distributed device control | |
AU2002350998B2 (en) | Method and system for using a selected peripheral of a network | |
WO2019233088A1 (zh) | 一种bmc间的文件传输方法、装置、设备及存储介质 | |
US11330107B2 (en) | Immediate call reconnection to a user of a disconnected client system | |
AU2002350998A1 (en) | Method and system for using a selected peripheral of a network | |
US9590990B2 (en) | Assigning user requests of different types or protocols to a user by trust association interceptors | |
EP1575236A1 (en) | Connectivity confirmation method for network storage device and host computer | |
US9009328B2 (en) | System and method for dynamic negotiation of device name with wildcard character | |
CN115484300B (zh) | 消息传输方法、电子设备及存储介质 | |
US10992782B2 (en) | Method for performing a server-specified program start-up via a client |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Open date: 20090617 |