资讯专栏INFORMATION COLUMN

Linux 命令--expect自动化交互程序

wangxinarhat / 1033人阅读

摘要:是的自动化交互程序从其他的交互式程序期望输出同时对所期望的输出做出相应。下面通过一段代码来说明常用的命令。现在我们想通过命令远程登录一台机器同时在远程主机上执行命令。

expect是Linux的自动化交互程序;expect从其他的交互式程序期望(expect)输出,同时对所期望的输出做出相应。

下面通过一段代码来说明expect常用的命令。现在我们想通过ssh命令远程登录一台机器, 同时在远程主机上执行命令ls。代码如下

  1 #! /usr/bin/expect
  2 set timeout 20
  3
  4 send_user "请输入用户名:
"
  5 expect_user -re "(.*)
"
  6 set username $expect_out(1,string)
  7
  8 send_user "请输入主机名或IP:
"
  9 expect_user -re "(.*)
"
 10 set host $expect_out(1,string)
 11
 12 stty -echo
 13 send_user "请输入密码:
"
 14 expect_user -re "(.*)
"
 15 set password $expect_out(1,string)
 16 stty echo
 17
 18 spawn ssh $username@$host
 19 expect {
 20         "*password" {send "$password
";exp_continue}
 21         "#" {send "ls
"}
 22         "timeout" {send_user "登录远程主机$username@$host超时!";exit}
 23 }
 24 interact

第1行#! /usr/bin/expect指明脚本的解释器,不同的系统略有不同;第二行set timeout 20设置命令expect的超时时间,单位为秒;第4~6行提示用户输入用户名,并将用户的输入存储在变量username中;第8~10提示用户输入主机或IP地址,并将用户的输入存储到变量host;第12~16行提示用户输入密码,并将用户的输入存储到变量password;第18行开启一个进程用于执行命令ssh $username@$host;第19~23行和命令ssh $username@$host交互;第24行将交互交给用户。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/10452.html

相关文章

  • 加速器:Expect脚本

    摘要:目前,大部分系统安装有。命令会等待接受该进程返回的结果并且会根据返回的字符串来决定下一步的操作。然后结束脚本的运行。为了能够提高效率,可以借助脚本。无参数的脚本内容如下在终端执行,终端显示。 1、Expect简介 Expect是由 Don Libes 基于Tcl语言开发的,并被广泛应用于交互式操作和自动化测试的场景中,它尤其适用于需要对多台服务器执行相同操作的环境中,可以大幅度提高系统...

    dongxiawu 评论0 收藏0
  • 加速器:Expect脚本

    摘要:目前,大部分系统安装有。命令会等待接受该进程返回的结果并且会根据返回的字符串来决定下一步的操作。然后结束脚本的运行。为了能够提高效率,可以借助脚本。无参数的脚本内容如下在终端执行,终端显示。 1、Expect简介 Expect是由 Don Libes 基于Tcl语言开发的,并被广泛应用于交互式操作和自动化测试的场景中,它尤其适用于需要对多台服务器执行相同操作的环境中,可以大幅度提高系统...

    everfight 评论0 收藏0
  • 使用Expect实现动化交互

    摘要:于是抛出本文的主角,以实现一系列的自动化交互动作。简介是一个免费的编程工具,用来实现自动的交互式任务,而无需人为干预。说白了,就是一套用来实现自动交互功能的软件。而利用,则可以根据程序的提示,模拟标准输入提供给程序,从而实现自动化交互执行。 *写在前面 最近开发的一个项目希望实现这样一个功能。将本地项目创建脚手架置于远程服务器,而用户需要创建项目时,仅需要在提供的页面上填入一些项目基础...

    frank_fun 评论0 收藏0
  • iTerm2 结合 Linux expect 实现 ssh 自动登陆, 通过跳板机登录服务器内网功能

    摘要:解决方法脚本通过跳板机登录内网服务器,如果只登陆有外网的服务器,把有关内网的部分删掉就可以啦,例如跳板机就是有外网的服务器。执行完成后保持交互状态,把控制权交给控制台。 痛点 一般情况下,公司所有的服务器都在内网,公网访问、管理服务器都要先通过登录一台跳板机,然后再由跳板机登录到相应的服务器进行操作,跳板机与服务器的连接都是内网地址。我们经常看到的现象就是下图这样(博主 Mac 自带的...

    williamwen1986 评论0 收藏0
  • Linux expect指令实现ssh自动登录脚本

    摘要:写在前面目前在公司是一人一台虚拟机,大多数工作都要在虚拟机上完成,为此每天要执行很多次指令登录虚拟机有很多方式解决这个问题,如使用等工具记录常用的连接,我就写了一个简单的脚本实现一键登录脚本内容如下密码再将配置别名,或移动到可执行目录中,即 写在前面:目前在公司是一人一台虚拟机,大多数工作都要在虚拟机上完成,为此每天要执行很多次【ssh xxx@xxxxxx】指令登录虚拟机;有很多方式...

    Astrian 评论0 收藏0

发表评论

0条评论

wangxinarhat

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<