`

linux expect, spawn用法

 
阅读更多

 
  脚本代码如下: 
  ############################################## 
  #!/usr/bin/expect 
  set timeout 30 
  spawn ssh -l username 192.168.1.1 
  expect "password:" 
  send "ispass\r" 
  interact 
  ############################################## 
  1. [#!/usr/bin/expect] 
  这一行告诉操作系统脚本里的代码使用那一个shell来执行。这里的expect其实和linux下的bash、windows下的cmd是一类东西。 
  注意:这一行需要在脚本的第一行。 
  2. [set timeout 30] 
  基本上认识英文的都知道这是设置超时时间的,现在你只要记住他的计时单位是:秒 
  3. [spawn ssh -l username 192.168.1.1] 
  spawn是进入expect环境后才可以执行的expect内部命令,如果没有装expect或者直接在默认的SHELL下执行是找不到spawn命令的。所以不要用 “which spawn“之类的命令去找spawn命令。好比windows里的dir就是一个内部命令,这个命令由shell自带,你无法找到一个dir.com 或 dir.exe 的可执行文件。 
  它主要的功能是给ssh运行进程加个壳,用来传递交互指令。 
  4. [expect "password:"] 
  这里的expect也是expect的一个内部命令,有点晕吧,expect的shell命令和内部命令是一样的,但不是一个功能,习惯就好了。这个命令的意思是判断上次输出结果里是否包含“password:”的字符串,如果有则立即返回,否则就等待一段时间后返回,这里等待时长就是前面设置的30秒 
  5. [send "ispass\r"] 
  这里就是执行交互动作,与手工输入密码的动作等效。 
  温馨提示: 命令字符串结尾别忘记加上“\r”,如果出现异常等待的状态可以核查一下。 
  6. [interact] 
  执行完成后保持交互状态,把控制权交给控制台,这个时候就可以手工操作了。如果没有这一句登录完成后会退出,而不是留在远程终端上。如果你只是登录过去执行 
  #!/usr/bin/expect #注意安装的路径,不确定 whereis expect 一下 
  # Change a login shell to bash 
  set user [lindex $argv 0] 
  spawn bash $user 
  expect "]:" 
  send "/bin/bash " 
  expect eof 
  exit

分享到:
评论

相关推荐

    linux下的expect的简单用法及举例-文档

    ### Linux下的Expect简单用法及举例 #### 一、引言 在Linux环境中,自动化运维是提高工作效率的重要手段之一。而`Expect`作为一种强大的自动化工具,可以用来模拟交互式会话,实现对远程服务器的自动登录、命令执行...

    linux下expect的安装方法

    `expect`脚本主要通过`spawn`命令启动一个进程,`expect`等待特定的输出,然后使用`send`命令发送输入,如此反复,直至完成自动化流程。这种自动化方式在管理远程服务器、执行SSH登录、自动备份、软件升级等场景中...

    linux expect

    ### Linux下的Expect交互式命令使用方法 #### 一、Expect简介 Expect 是一种自动化交互式命令行工具,它主要用于在 Linux 或 Unix 系统中控制交互式应用,例如 Telnet、SSH、FTP 和其他需要与用户进行交互的应用...

    Linux expect 介绍和用法

    总的来说,Linux Expect 提供了一种强大且灵活的方法来自动化那些需要用户交互的任务,极大地提高了运维效率,特别是在需要大量手动操作的场景下。通过熟练掌握 Expect,IT专业人员可以编写出高效的自动化脚本,减少...

    linux编写脚本使用expect正则表达式 教程

    首先,我们需要理解`expect`的基本用法。`spawn`命令用于启动一个新的进程,例如打开一个shell会话或运行特定的程序。例如,你可以这样使用`spawn`来打开一个SSH连接: ```bash #!/usr/bin/expect spawn ssh user@...

    Linux expect交互命令使用详解.docx

    Linux中的`expect`工具是一个强大的自动化脚本工具,主要用于与命令行交互,特别是与需要用户输入的程序进行自动化通信,如SSH登录、FTP传输等。它基于TCL语言,因此在使用`expect`之前需要先确保系统安装了TCL和...

    expect安装包

    下面我们将详细介绍expect的一些关键概念和使用方法: 1. **基本结构**:一个expect脚本通常包含`spawn`、`expect`和`send`三个主要部分。`spawn`用于启动一个进程,例如打开一个telnet或ssh连接;`expect`则等待并...

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

    在Linux环境下,使用 Expect 可以编写一个自动登录脚本,例如 `login.sh`。这个脚本的核心在于四个主要的 Expect 指令: 1. **spawn**:这个命令用来启动一个新的进程,通常会是需要交互的应用程序,如 `ssh` 命令...

    expect+tcl工具大合集,用于远程登陆到另外一台linux机器。

    总结起来,`expect`和`TCL`的组合提供了一种强大且灵活的方法来自动化远程Linux系统的管理任务。通过学习和熟练掌握这两个工具,IT管理员和开发者可以显著提高工作效率,减少手动操作带来的错误和时间消耗。通过下载...

    Linuxssh登录远程服务器 expect

    安装和使用这些软件,你可以在Linux环境中编写和运行`expect`脚本,从而实现SSH登录远程服务器的自动化。 总的来说,`expect`是Linux系统管理员和自动化工程师的强大工具,通过结合SSH协议,它可以方便地进行远程...

    Linux经典脚本expect的示例及基本用法

    ### Linux经典脚本expect的基本用法与示例详解 #### 一、expect简介与应用场景 在Linux环境下,系统管理员和开发人员经常会遇到需要自动化执行的任务,尤其是那些涉及到远程登录、文件传输等交互式操作的场景。...

    linux-expect

    ”中可以看出,这份文档是关于如何在 Linux 系统中使用 Expect 脚本来自动化交互式任务的一个学习资源。 ### 一、Expect简介 #### 1.1 什么是Expect? Expect 是一个用于自动化交互式任务的工具包,由 Don Libes ...

    #!/usr/bin/expect

    /usr/bin/expect 是一个Unix/Linux环境下的脚本开头,用于指定解释器执行该脚本。这个特定的命令表示该脚本将由 Expect 程序来执行。Expect 是一个强大的自动化工具,常用于交互式应用程序的自动化,尤其是与远程...

    linux 模拟键盘输入

    #### 使用Expect进行模拟键盘输入 **Expect**是一款强大的自动化工具,主要用于简化交互式应用(如telnet、ftp、ssh)的操作。它通过模仿用户行为来执行命令或输入数据,常用于构建自动化脚本。 ##### 基本语法与...

    expect所需的全部jar包

    核心概念包括Spawn(用于启动新的进程)、Expect(用于匹配输出并做出反应)和Send(用于向进程发送输入)。 2. **交互式命令执行**:在Java应用中,通常使用Runtime或ProcessBuilder类来执行系统命令。但这些方法...

    详解Linux使用shell+expect远程登录主机

    通过上述步骤,我们不仅学会了如何使用Shell+Expect进行远程登录,还掌握了创建自动化脚本的基本方法。这种技能对于系统管理员来说尤其重要,因为它可以极大地提高日常运维工作的效率。希望本文能为你提供有用的指导...

    Linux下使用expect命令编写自动化交互脚本

    在Linux系统中,expect命令是一种强大的工具,它允许用户编写自动化脚本来处理那些通常需要人工交互的...希望这篇内容能对你在Linux环境下使用expect编写自动化交互脚本有所帮助,并鼓励你去探索更多expect的高级功能。

    expect学习笔记及实例详解

    ### expect学习笔记及实例详解 #### 一、expect简介与基本语法 **expect** 是一个基于 **Tcl** 的程序,主要用于自动化交互式...此外,还提供了一些注意事项和扩展知识,帮助读者更全面地掌握 expect 的使用方法。

    expect资料

    **linux下交互式命令expect使用方法.doc** `Expect`的核心在于它可以模拟用户与程序的交互。以下是一些基本的使用方法: 1. **启动会话**:使用`spawn`命令启动一个进程,例如打开一个shell: ```tcl spawn bash...

Global site tag (gtag.js) - Google Analytics