shell:使用expect自动化连接登录远程主机

前言: 下面使用expect实现自动化交互登录远程主机!
example code:

#!/usr/bin/expect
# spawn 引起的意思。表示建立/启动ssh会话
spawn ssh root@192.168.98.5   
# 发送回车并接收字符串
expect {  
        # ps:send发送字符;"yes/no"与 "password:"表示匹配的字符;\r表示回车
        "yes/no" { send "yes\r";exp_continue}  # 键入yes
        "password:" { send "111111\r" } # 键入密码
}
# ps: 这里的eof作为输入结束分界符!表示到这里expect就结束匹配!
expect eof 
# ps:表示保持交互状态,因为默认是执行完上面的代码就会关闭交互也就是关闭session。
interact  

# send:用于向进程发送字符串
# expect:发送回车然后匹配{}中的字符并作出动作!
# spawn:建立ssh会话
# interact:继续保持用户交互
# exp_continue 继续匹配的意思,因为匹配了"yes/no",下面还有一个password所以要继续让expect继续匹配!
# expect脚本的执行命令:expect expect_name.sh

ps:expect跟shell是不一样的哦!except有自己解析器,所以运行脚本的时候也是不一样的!shell使用sh
script_bame,而expect使用expect script_name。

run result:
在这里插入图片描述

ps:从上图结果可以看到整个登录过程都是脚本自动执行的,根本就不需要我们手动键入密码然后回车登录!

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值