通过 Shell 和 Expect 脚本实现对 IBM 刀片服务器高级管理模块固件的大量升级
2009-12-09 00:00:00 来源:WEB开发网编写 update.tcl 脚本:
要让 AMM 执行固件升级命令,需要执行 AMM 中的
update – r – u tftp://tftp_ip/firmware_filename – T mm[1]
这样的命令来完成。给 telnet 中需要的 IP 地址、用户名和密码三个变量赋值,然后开始请求 telnet 访问,成功之后,执行上述升级命令。run.sh 会读取 ip.out 中每个 AMM 的 IP 地址,并循环调用此脚本来实现多个 AMM 并行升级。
update.tcl 脚本具体内容如下:
清单 3. update.tcl 代码
#!/usr/bin/expect
# 设定 timeout 指为 -1,让 expect 永远等待输入
set timeout -1
if { $argc != 3 } {
puts "Usage $argv0 hostname userid password"
exit 1
}
set host [lindex $argv 0]
set user [lindex $argv 1]
set pass [lindex $argv 2]
spawn telnet $host
expect *username
send "$userr"
expect *assword:
send "$passr"
expect system>
# 发送 update 命令开始升级 AMM 的固件
# 需 要 指 定 tftp 服 务 器 地 址 和 AMM 固 件 的 升 级 文 件 名
send "update -r -u tftp://192.168.19.3/CNETCMUS.pkt -T mm[1]r"
send "exitr"
expect eof
配置 DHCP 和 TFTP 服务
首先确认服务器上是否安装了 DHCP 和 TFTP 的 rpm 包:
更多精彩
赞助商链接