通过 Shell 和 Expect 脚本实现对 IBM 刀片服务器高级管理模块固件的大量升级
2009-12-09 00:00:00 来源:WEB开发网编写 remotechassis.tcl 脚本:
要发现网络里面的 AMM,可以执行 AMM 中的
remotechassis – T mm[1]
命令来完成。给 telnet 中需要的 IP 地址、用户名和密码三个变量赋值,然后开始请求 telnet 访问,成功之后,执行 remotechassis – T mm[1] 命令让其发现网络里面 AMM 的 IP 地址。run.sh 会调用此脚本执行后的输出,格式化后记录到 ip.out 文件中。
remotechassis.tcl 脚本具体内容如下:
清单 2. remotechassis.tcl 代码 #!/usr/bin/expect
# 设定 timeout 指为 -1,让 expect 永远等待输入
set timeout -1
# 设定输入提示
if { $argc != 3 } {
puts "Usage $argv0 hostname userid password"
exit 1
}
# 设定 telnet AMM 的三个变量
set host [lindex $argv 0]
set user [lindex $argv 1]
set pass [lindex $argv 2]
# 执行 telnet 命令,并将 ip 地址传递给 telent
spawn telnet $host
expect *name: # 等待用户名输入
send "$userr" # 发送用户名字符串
expect *assword: # 等待密码输入
send "$passr" # 发送密码字符串
expect system>
# 发送 remotechassis 命令
send " remotechassis -T mm[1]r"
expect system>
# 发送 exit 命令退出 telent
send "exitr"
expect eof
更多精彩
赞助商链接