Linux中expect自动交互脚本的使用

最近在一台物理机上同时运行64个虚拟机进行测试,但每台虚拟机的操作都是一样的,所以用脚本来操作会方便很多,但唯一的问题就是要自动登录64台虚拟机后再进行操作,利用expect能解决这个问题。

expect是用来进行自动化控制和测试的工具,在Ubuntu14的安装方法是:

# apt-get install expect


expect常用命令:

spawn:spawn命令用来启动新的进程(由spawn启动的进程的输出才可以被expect所捕获)。

expect:从进程接收字符串,通常等待进程的反馈。expect可以接收一个字符串参数,也可以接收正则表达式参数。

send:将expect 命令接受的后的与期望字符串匹配,若对应则执行相应的send命令来发送交互信息。

interact :执行完成后保持交互状态, 这时可以手动输入信息 。

expect eof :进程结束符。


一个例子:

#!/usr/bin/expect -f 
set ip [lindex $argv 0 ]   #接收第一个参数,并设置IP 
set password [lindex $argv 1 ] #接收第二个参数,并设置密码 
set timeout 10     #设置超时时间 
spawn ssh root@$ip  #发送ssh请滶 
expect {     #返回信息匹配 
 "*yes/no" { send "yes\r"; exp_continue} #第一次ssh连接会提示yes/no,继续 
 "*password:" { send "$password\r" }  #出现密码提示,发送密码 
} 
interact   #交互模式,用户会停留在远程服务器上面.





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值