【linux】expect的使用

expect的安装详解参考icon-default.png?t=N7T8https://blog.csdn.net/jiaxinhong/article/details/134014268?spm=1001.2014.3001.5501

 1、expect是什么?

        expect 是由Don Libes基于TCL(Tool Command Language )语言开发的,主要应用于自动化交互式操作的场景,借助Expect处理交互的命令,可以将交互过程如:ssh登录,ftp登录等写在一个脚本上,使之自动化完成。尤其适用于需要对多台服务器执行相同操作的环境中,可以大大提高系统管理人员的工作效率。

2、命令速查

spawn:交互程序开始后面跟命令或者指定程序(在壳内启动这个进程)
expect:获取匹配信息匹配成功则执行expect后面的程序动作(检测由壳内进程发出的特定交互指令反馈字符串后向下执行)
send:用于向进程发送字符串(从壳外向壳内进程发送一条字符串,换行符为确认结束)
interact:允许用户交互
exp_continue:在expect中多次匹配就需要用到
send_user:用来打印输出 相当于shell中的echo
exit:退出expect脚本
eof:expect执行结束 退出
set:定义变量
puts:输出变量
set timeout:设置超时时间

3、实例介绍1

set timeout 60
spawn ssh -l 用户名 192.168.10.11
expect "password:"
send "要输入的密码"    
interact

 对上面代码的分析:

1、设置超时时间为30s
2、spawn 是 expect 的起始语句,可以理解为从此处开始(启动新的进程)
   spawn 后面的语句是执行 ssh 连接
3、expect:当发现password:这个字符串后,在后方输入send后面的内容(从进程接收字符串)
4、send:要输入的密码(用于向进程发送字符串)
5、interact:执行完留在远程控制台,不加这句执行完后返回本地控制台(允许用户交互)

4、实例介绍2

#!/usr/bin/expect             
set host "192.168.10.11"     
set username "root"
set password "123456"
set timeout -1

spawn ssh $username@$host
expect "*password:"
send "$password\r"
interact
#!/usr/bin/expect            使用expect来解释该脚本;

set host "192.168.10.11"     设置连接的主机地址

set username "root"          设置连接的用户名

set password "123456"        设置连接的密码

set timeout -1               设置超时时间永不超时,默认为10s

spawn ssh $username@$host    spawn是进入expect环境后才可以执行的expect内部命令,执行ssh
spawn ssh $username@$host    spawn是进入expect环境后才可以执行的expect内部命令,执行ssh

expect "*password:"          expect是从进程接收字符串,当发送ssh请求时,服务器会返回输入秘密的 
                             字符串,用expect来接收

send "$password\r"           send向进程发送字符串,此处是自动输入密码

interact                     是expect用来打开用户与产生进程之间通信的命令,就是登陆以后将远程服 
                             务器的终端保持在当前终端,而不是将远程终端关掉


 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值