通过脚本循环服务器账户密码。调用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