Linux expect实现自动登录脚本实例代码

发布时间:2022-04-22 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了Linux expect实现自动登录脚本实例代码脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

expect

exPEct可以让我们实现自动登录远程机器,并且可以实现自动远程执行命令。当然若是使用不带密码的密钥验证同样可以实现自动登录和自动远程执行命令。但当不能使用密钥验证的时候,我们就没有办法了。所以,这时候只要知道对方机器的账号和密码就可以通过expect脚本实现登录和远程命令。

引言

目前在公司是一人一台虚拟机,大多数工作都要在虚拟机上完成,为此每天要执行很多次【ssh xxx@xxxxxx】指令登录虚拟机;有很多方式解决这个问题,如使用xshell、secureCRT等工具记录常用的连接,我就写了一个简单的脚本实现一键登录~

login.sh脚本内容如下:

#!/usr/bin/expect
spawn ssh xxx@xxxxxx
expect "*password:"
send "密码\r"
interact

再将【./LOGin.sh】配置别名alias,或移动到可执行目录中,即可实现【login】一键登录;

expect是一个处理交互的指令,通过expect我们可以把交互过程写到Shell脚本里以实现一些自动化操作~

expect有四个核心的指令:

  • spawn:启动新进程,后跟新进程要执行的指令;
  • expect:指定要监听的字符串,如果spawn进程返回了匹配的字符串(如标准输入的提示信息),则触发send;
  • send:发送指定的字符串到spawn进程,代替标准输入;
  • interact:用户参与交互;

对于login.sh的执行过程为:

【spawn】启动一个新进程执行ssh登录指令,【expect】监听到标准输入的提示信息『xxx@xxxxxx's password』符合匹配规则,触发【send】发送密码代替手动输入,完成登录,【interact】用户参与交互,此时已登录上了虚拟机;

使用expect还可以完成如:批量更新gIT代码库、自动登录FTP等功能等~

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对脚本宝典的支持。

脚本宝典总结

以上是脚本宝典为你收集整理的Linux expect实现自动登录脚本实例代码全部内容,希望文章能够帮你解决Linux expect实现自动登录脚本实例代码所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。