expect批量执行服务器

/ 0评 / 0

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

发表评论

邮箱地址不会被公开。 必填项已用*标注