自动实现远程执行命令

  • 格式:pdf
  • 大小:257.18 KB
  • 文档页数:5

1 通过CLI

自动实现远程执行命令

作者:Jianwen Yin, Ph.D.

DellTM OpenManageTM 服务器系统管理员软件版本1.0提供命令行交互的方式, 服务器管理原可以使用它管理网络系统,本文描述了系统管理员如何创建一个小本以远程方式通过命令行自动实现远程操作。

当系统管理员管理多台网络服务器的时候,通过命令行

交互使用脚本方式可以实现远程执行任务操作。

DellTM OpenManageTM Server Administrator version 1.0支

持CLI的方式,通过命令行实现在浏览界面远程控制。使用系

统管理的命令行,管理员可以发出请求,设置系统管理信

息,改变BIOS设置,升级BIOS或firmware以及执行其它的任

务。通过管理终端以本地或远程的方式管理服务器。本文描

述了如何编写标本程序以远程方式执行服务器的系统管理。

这些脚本可以在Linux® 和 Microsoft® Windows® 2000等系

统上运行。使用FTP、 Telnet, 和被称为 Expect的工具软

件,管理员可以自动在远程的服务器上执行命令行,完成管

理和控制。

远程执行基础操作

远程命令行操作至少需要使用两台服务器,被管理服务

器(这台机器执行远程控制发过来的控制指令)以及管理终

端(管理员通过这台机器发出用户指令)。远程控制流程需

要一下几个基本步骤(见图1)

1.A机(管理工作站)使用Telnet与B机(被管理服务器) 2.在B机运行服务器系统管理员命令行程序。 3.在B机把输出结果放置在临时目录中。 4.将所产生的临时文件用FTP方式从B机传输到A机 5.显示临时文件内容 6.从A机删除文件

用户通过命令行执行远程操作非常简单,系统管理员可以构建一个环境让用户通过单一的命令隐藏所有的后台进

程。如果需要执行远程环境进程需要下一下几个条件:

󰀛 在被管理的服务器上有一个Telnet的服务器,从管理终端可以与被管理服务器进行telnet通讯

󰀛 在被管理的服务器上有一个FTp

的服务器,从管理终端图1:工作流程和远程执行环境

www.dell.com/powersolutions 2 可以与被管理服务器进行FTP通讯

󰀛 Expect,这是一个脚本执行程序,可以后台运行用户传输的程序。

如果被管理服务器运行的是Windows 2000,系统管理员

可以安装、配置并启动FTP的服务,这本身是Microsoft

Internet Information Services (IIS)的一部分。所使用的

Telnet服务,是构建在Windows 2000内部的,在系统运行的

同时也同时被启动。如果被管理服务器是采用Linux平台,

FTP与Telnet服务在缺省的情况下是被关闭的,因此,应当将

其设置为可用。

Expect可以在管理工作站上自动执行交互式应用,例如

Telnet或FTP,Expect能够执行脚本程序并发送命令给应用程

序,并等待应用程序的响应,根据相应做出新的操作。

Expect是被预装在Linux平台上的。如果是Windows平台,系

统管理原可以从下列网址下载软件。

http://expect.nist.gov.

在Windows平台远程执行脚本程序

有两个最常用的命令,一个是omreport,它可以显示系

统的状态信息,还有一个是、omconfig,它可以让管理员配

置警告事件,以及报警后的操作,执行系统关机,还有其它

的系统任务。可以通过远程方式执行omreport 和 omconfig

报警操作,这些操作可以通过一台windows系统的机器去操纵

其它的windows计算机或安装有Linux系统的机器。为了执行

这些操作,系统管理员需要创建一些批处理程序:

romreport.bat, romconfig.bat, show.bat, 以及

romsa.bat。

脚本romreport.bat 包含有用户的支持的交互命令,定

义服务器管理的行命令采用omreport,传递这些命令采用

romsa.bat 。使用 show.bat 脚本在控制终端显示其运行结

果。romconfig.bat 脚本与romreport.bat非常相似,但是它

用于定义服务器系统管理员命令行的设置,功能上与

omconfig接近。当整个操作进程有了一定进度时,使用

show.bat文件用于显示临时目录中所产生的文件, 删除临时

文件使用stdout.om. 图2 显示了这些文件的上下文的相关含

义。

Expect 脚本 romsa.bat 可以控制Telnet 行 FTP 连接

通讯,以及远程执行服务器系统管理员的行命令,这些脚本

共有三种模式: 󰀛 romsa_L.bat: 包含有Expect 命令,以远程方式在Linux系统上执行omreport 脚本管理服务器。

󰀛 romsa_L_su.bat: 可以执行romsa_L.bat 相同功能的命令,同时也可以通过运行omconfig 对命令作适当调整,

运行于Linux

平台。超级用户可以发送命令时作一些选项图2:romreport.bat, romconfig.bat, 和show.bat 脚本文件

3 调整,执行omconfig 程序时需要有Linux 系统支持。

romsa_L_su.bat 脚本程序可以预先设定超级用户的密码

与普通用户的密码可以相同。如果不相同,

romsa_L_su.bat 和 romconfig.bat 文件将会作对应修

改,这样romconfig.bat 就会把超级用户的密码通过属性

选项传递给romsa_L_su.bat 。

󰀛 romsa_W.bat: 在基于Widows 平台的系统上,Expect 可以远程执行omreport 和 omconfig。这些脚本不同与

romsa_L.bat ,romsa_L.bat可以在向管理终端传输文件

时,同时从缺省的Windows FTP 目录中删除那些临时文

件。目录是c:\InetPub\ftproot。Windows操作系统也允

许直接采用Telnet 方式,以"administrator" 用户执行脚

本程序。而不像在Linux 系统上,需要使用超级用户增

加选项属性调整远程管理命令。

系统管理员可以从

http://www.dell.com/powersolutions 网站上下载

appropriate version 系统,在这些系统中包含

romsa.bat 、romreport.bat 和romconfig.bat脚本。

Expect脚本通过系统输出的特定的报告信息确定系统的

状况, 在执行新的操作时需要首先获知系统的状况。

romsa.bat 脚本包含有很多命令,如expect "* >",这时就

以为着通知脚本程序等外系统的输入,所有的输入信息以串

的方式显示。一个典型的Windows命令行输入就是如此,而在

Linux环境下的提示符则是*$"。在使用任何的脚本程序的时

候,系统管理员应当首先所使用的串码是否与操作系统吻

合。

针对Linux系统远程执行的脚本程序

为了能在Linux系统上远程执行omreport 和 omconfig

命令。系统管理员所创建的脚本应当遵循以前的格式。图3显

示了Linux的批处理文件:romreport.sh, romconfig.sh,

and show.sh

Expect 脚本 romsa.sh 与romsa.bat 非常相似,都保

留相同的段落,例如都保留有第一行的:

#!/usr/bin/expect

为了能在Linux系统运行脚本程序,系统管理员必须完

成以下任务:

1.确保脚本程序是可以运行的:例如:chmod a+x romreport.sh 2.设置目前的运行路径可用,例如:export

PATH=.:$PATH

远程执行脚本的四个环节

在远程执行脚本的时候需要有四个环节,由于在

Windows操作系统上的执行的脚本和Linux系统上有所不同,

因此需要通过几个环节对其进行调整。假设管理终端运行的

是Windows2000并执行下列脚本:

󰀛 romreport_L.bat:为了在Linux系统上远程执行omreport,需要同时执行romreport.bat 和 romsa_L.bat

脚本

󰀛 romconfig_L.bat: 为了在Linux系统上远程执行omconfig,需要同时执行romconfig.bat 和

romsa_L_su.bat 脚本

󰀛 romreport_W.bat: 为了在Windows系统上远程执行omreport,需要同时执行romreport.bat 和 romsa_W.bat

脚本

图3:romreport.sh, romconfig.sh, 和show.sh scripts

www.dell.com/powersolutions 4 󰀛 romconfig_W.bat: 为了在Windows系统上远程执行omconfig,需要同时执行romconfig.bat 和 romsa_W.bat

脚本

所有的范例脚本程序都已经经过认真的测试。因此,所

具有的差别也就是不同机器的差别,系统管理员可以根据系

统的具体配置和范例脚本程序来创建自己的运行脚本。

范例1:远程服务器的风扇状态检测

一个用户希望得到远程计算机B的所有风扇的运行状态

信息,这个服务器是基于Windows平台。用户使用管理工作

站,输入相应的命令(需要提交B机的IP、B机的用户ID,用

户密码、以及对应的请求的信息)。

最终,用户就可以看到需要的信息了 (见图4)

范例2:一个远程服务器的风扇配置的情况

希望在B计算机设置风扇出现故障的最小警告时间。系

统管理员需要输入以下命令:

romconfig_W ip-of-B uid-of-B password-of-B

chassis fans "index=0" "minwarnthresh=1200" 图5. 所显示的是成功配置的结果

范例3:两台远程服务器的风扇运行状态

B计算机运行的是Windows 2000网络操作系统,而C计算

机运行的Linux操作系统,这时系统管理员需要获得风扇的状

态报告,他需要作以下几个操作。见图6

范例4:从两台远程的计算机获得风扇的配置情况

现在系统管理员希望通过远程方式设置其最小的风扇报

警时间,B计算机仍然采用Windows操作系统,C计算机采用

Linux操作系统。(见图7)。图7所显示的是包含系统错误信

息的一个范例,在这个状态下,系统管理员可以设置

minwarnthresh值为400,这是通过运行romconfig_all.bat脚

本程序来实现的。

图4. 远程执行命令行

图5:远程执行命令所获得的结果

图6:从两台远程的计算机获得风扇的状态情况