通过脚本循环服务器账户密码。调用expect执行
cat test.sh
#! /bin/bash
for i in `cat testhost`;
do
ipaddr=`echo $i|awk -F: '{print $1}'`
passwd=`echo $i|awk -F: '{print $2}'`
expect test.exp $ipaddr $passwd 
done
cat test.exp
#!/usr/bin/expect -f
set timeout 30
set ipaddr [lindex $argv 0]    ######### expect脚本可以接受从bash传递过来的参数.可以使用[lindex $argv n]获得,n从0开始,分别表示第一个,第二个,第三个....参数
set passwd [lindex $argv 1]
spawn ssh $ipaddr -p 22022
expect {
"yes/no" { send "yes\r"; exp_continue}
"password:" { send "$passwd\r" }
         }
expect "#"
send "ps -ef | grep mysql\r"
send "exit 1\r"
expect eof
cat testhost
192.168.1.5:123456