expect自动交互

1、linux expect说明
linux expect主要解决主动交互问题,通过expect判断系统返回信息,对下一步输入进行预定义,从而免除人工操作的低效率。需要说明一下在python中pexpect与expect有着相同作用。本示例主要以expect说明。

2、简单安装
我是用的是CentOS7做测试,在此平台上没有安装expect程序,安装即可
yum install expect

3、脚本示例
以下脚本,使用通过自动从mgt端口登录入ip.txt中列出服务器,获取版本信息,并记录在本地。

#!/bin/bash
iplist=(`cat ./ip.txt`)
userlist=('root')
passwdlist=('mimapassword')
i=0
while(($i<${#iplist[@]}))
do
/usr/bin/expect<<EOF1 |echo -e "${iplist[$i]} `grep 'version:'`">>/TEST/sshResult.txt
set timeout 5
spawn ssh -p 22 ${userlist[0]}@${iplist[$i]}
expect {
"*yes/no)*" {send "yes\r"}
"*password*" {send "${passwdlist[0]}\r"}
}
expect "egString:/*"
send "version\r"
expect egString:/*"
send "exit\r"
EOF1
cd /TEST/
i=$((1+$i))
sleep 2
done

4、脚本说明
attention001:预定义多种可能
expect {
yes/no)” {send “yes\r”}
password” {send “${passwdlist[0]}\r”}
}

attention002:引用外部数组变量
spawn ssh -p 22 userlist[0]@userlist[0]@{iplist[$i]}

attention003:*表示模糊匹配,send为发送命令,\r为回车执行
expect “egString:/*”
send “version\r”
expect egString:/*”
send “exit\r”

attention004:注意每次执行后退出的路径有变化,保证每次执行的环境路径一致 cd /TEST/

attention005:*重定向使用**
/usr/bin/expect<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值