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

 更新时间:2018年03月22日 10:27:25   作者:leeon  
expect是一个基于Tcl的用于自动交互操作的工具语言,它适合用来编写需要交互的自动化脚本,比如上面提到的SSH输入用户名密码,自动FTP等等场景。下面这篇文章主要给大家介绍了关于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等功能等~

总结

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

相关文章

  • Apache使用.htaccess 屏蔽恶意 User Agent(防蜘蛛)

    Apache使用.htaccess 屏蔽恶意 User Agent(防蜘蛛)

    这篇文章主要介绍了Apache使用.htaccess 屏蔽恶意 User Agent(防蜘蛛),需要的朋友可以参考下
    2016-07-07
  • Apache安全配置之禁止目录访问的配置方法

    Apache安全配置之禁止目录访问的配置方法

    这篇文章主要介绍了Apache禁止目录访问的配置方法,这是一个常见的、非常有必要的apache安全配置之一,需要的朋友可以参考下
    2014-05-05
  • CentOS7安装mysql5.7解压缩版简明教程

    CentOS7安装mysql5.7解压缩版简明教程

    这篇文章主要介绍了CentOS7安装mysql5.7解压缩版,简单介绍了CentOS7环境下的mysql5.7压缩版下载、解压、安装、配置、密码设置等相关命令及操作技巧,需要的朋友可以参考下
    2018-03-03
  • Ubuntu Server 16.04 LTS 上安装 LAMP图解教程

    Ubuntu Server 16.04 LTS 上安装 LAMP图解教程

    这篇文章主要介绍了Ubuntu Server 16.04 LTS 上安装 LAMP图解教程,需要的朋友可以参考下
    2016-09-09
  • 详解nohup /dev/null 2>&1 含义的使用

    详解nohup /dev/null 2>&1 含义的使用

    这篇文章主要介绍了详解nohup /dev/null 2>&1 含义的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-09-09
  • Linux多线程中fork与互斥锁过程示例

    Linux多线程中fork与互斥锁过程示例

    大家好,本篇文章主要讲的是Linux多线程中fork与互斥锁过程示例,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下哦
    2021-11-11
  • 16个简单实用的.htaccess使用技巧

    16个简单实用的.htaccess使用技巧

    这篇文章包括了16个非常有用的小技巧。另外,因为.htaccess 是一个相当强大的配置文件,所以,一个轻微的语法错误会造成你整个网站的故障,所以,在你修改或是替换原有的文件时,一定要备份旧的文件,以便出现问题的时候可以方便的恢复。
    2011-04-04
  • PHP中的.htaccess伪静态文件

    PHP中的.htaccess伪静态文件

    htaccess是apache的伪静态文件了不过普通人不熟悉linux不熟悉apache,可能都用惯了iis,可是又不懂伪静态规则,现在项目就只提供了这么一个.htaccess文件,真叫人苦恼。方案来了彻底解决你的苦恼让伪静态妥妥的windows7,windows8,windows8.1,windows2008-2012都行。
    2016-05-05
  • 详解Linux服务器状态、性能相关命令

    详解Linux服务器状态、性能相关命令

    这篇文章主要介绍了详解Linux服务器状态、性能相关命令,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-09-09
  • 解决linux ftp匿名上传、下载开机自启问题

    解决linux ftp匿名上传、下载开机自启问题

    这篇文章主要介绍了linux ftp匿名上传、下载,开机自启问题,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-02-02

最新评论