出于客户的需求,需要在一台管理机上远程执行关机命令,但又不能使用rsh的方式,想到用expect,网上查了一下,自己试验了一把,结果如下:
1、安装expect的软件包
rpm -ivh tcl-8.4.7-1.aix5.1.ppc.rpm
rpm -ivh tk-8.4.7-1.aix5.1.ppc.rpm
rpm -ivh expect-5.42.1-1.aix5.1.ppc.rpm
2、主机列表文件
vi passwd.txt (格式:ipaddress 空格 password)
10.10.10.10 123456
10.10.10.11 123456
3、expect.sh
#!/usr/bin/expect
spawn ssh
root@[lindex $argv 0]
sleep .2
expect "(yes/no)?" {
send "yesr"
expect "*assword:"
send "[lindex $argv 1]r"
} "*assword:"
send "[lindex $argv 1]r"
expect -re {[$#] }
send "shutdown -Fr"
expect EOF
4、remote_shutdown.sh
#!/bin/sh
while read ip passwd
do
echo "$host....."
/scripts/expect.sh $ip $passwd
done </scripts/passwd.txt
在管理机上执行remote_shutdown.sh脚本,2台机器自动关机,试验成功,完工交差。
添加新评论13 条评论
2011-07-12 11:00
2011-07-05 16:46
2011-07-05 15:30
2011-07-01 13:56
2011-06-30 16:06
2011-06-22 11:25
2011-06-22 11:15
2011-06-22 11:14
2011-06-20 17:24
2011-06-20 00:23
2011-06-15 17:08
2011-06-15 14:15
2011-06-15 12:59