`
mmdev
  • 浏览: 13310652 次
  • 性别: Icon_minigender_1
  • 来自: 大连
文章分类
社区版块
存档分类
最新评论

利用Expect实现telnet自动登录并执行command

阅读更多

Expect是Unix系统中用来进行自动化控制和测试的软件工具,由Don Libes制作,作为Tcl脚本语言的一个扩展,应用在交互式软件中如telnet,ftp,Passwd,fsck,rlogin,tip,ssh等等。该工具利用Unix伪终端包装其子进程,允许任意程序通过终端接入进行自动化控制;也可利用Tk工具,将交互程序包装在X11的图形用户界面中。

以下是一个telnet自动登录的小脚本

#!/usr/bin/expect --

# 向远程服务器请求打开一个telnet会话,并等待服务器询问用户名
spawn telnet 127.0.0.1
expect "username:"
# 输入用户名,并等待服务器询问密码
send "admin\r"
expect "Password:"
# 输入密码,并等待键入需要运行的命令
send "admin\r"
expect "%"
# 输入预先定好的密码,等待运行结果
send "create vlan test\r"
expect "%"
# 将运行结果存入到变量中,显示出来或者写到磁盘中
set results $expect_out(buffer)
# 退出telnet会话,等待服务器的退出提示EOF
send "exit\r"
expect eof

利用expect, 可以方便的完成ftp,telnet, passwd等自动操作. 也可以进行一系列自动化测试! :)

参考:

  • Expect on SourceForge (current)
  • Official homepage (very outdated!)
  • The Tcler's Wiki -- Expect page
  • Perl Expect.pm module
  • Pexpect a Pure Python Expect-like module
  • Expect Scripting Tutorial
  • Empty - expectlike tool to run command-line interactive programs in UNIX shell-scripts
  • Expect-lite -- a wrapper for expect, making automation easy, quick, and fun
  • Bulletproof: Reliable CLI interface using Expect
  • ExpectJ - a Java implementation of the Unix expect utility
  • 分享到:
    评论

    相关推荐

      linux实现交互执行:expect

      `expect`是一个基于TCL(Tool Command Language)的脚本语言,主要用于自动化那些需要用户交互的任务,它能够模拟用户对命令行的输入,极大地提高了工作效率。 `expect`的基本工作原理是通过读取脚本中的指令,监控...

      Linuxssh登录远程服务器 expect

      标题中的"Linux ssh登录远程服务器 expect"指的就是利用`expect`脚本来实现Linux系统中SSH登录的自动化。这种方式在批量管理多台服务器、持续集成环境或者需要定期运行远程任务的场景下非常有用。 `expect`的基本...

      expect中文man

      它基于Tcl(Tool Command Language)语言开发,能够实现对远程登录(如telnet、ssh)、配置设备等场景的自动化处理。Expect的强大之处在于它能够自动处理那些需要人工干预的脚本任务,例如自动应答yes/no问题、自动...

      expect5.43.0和tcl8.4.11.zip

      `Expect`是建立在`TCL`基础上的一个扩展,专为自动交互式应用程序设计,如SSH、telnet等。` Expect5.43.0`和`TCL8.4.11`是这两个工具的特定版本,它们可能包含了对某些功能的优化和改进。 首先,`TCL(Tool Command...

      expect

      "Expect"是一个强大的自动化工具,主要用于自动化交互式命令行程序,比如SSH登录、FTP传输、telnet操作等。它基于Tcl(Tool Command Language)语言,允许用户编写脚本来模拟键盘输入,使得非脚本化的命令行程序可以...

      expect安装包

      "Expect"是一个强大的自动化脚本工具,主要用于与交互式应用程序进行自动对话,比如telnet、ftp、passwd等。它的设计灵感来源于TCL(Tool Command Language)语言,因此在安装和使用Expect时,通常需要先安装TCL环境...

      expect中文教程

      #### 三、使用Expect实现远程登录自动化示例 下面是一个使用**Expect** 实现远程登录并执行命令的示例脚本: ```expect #!/usr/bin/expect sample_login.exp proc do_console_login {login pass} { set timeout ...

      expect5.43 + tcl8.4.11

      5. 运行`expect`脚本:通过`expect`命令运行脚本,自动与目标程序交互。 `expect`的关键特性包括: - **期望模式匹配**:可以设置期望的输出,当脚本检测到该输出时,执行相应的动作。 - **进程控制**:可以启动、...

      tcl和expect配置.zip

      在IT领域,TCL(Tool Command Language)和Expect是两种重要的自动化工具,广泛应用于脚本编写和系统测试。本文将详细介绍这两个工具以及如何配置它们。 首先,TCL是一种动态编程语言,由John Ousterhout在1988年...

      expect & tcl 的安装文件

      Expect能模拟用户输入,并根据程序的输出做出响应,这对于自动化测试、无人值守的系统维护等任务非常有用。 Expect的基本思想是创建一个进程,监控其标准输出和错误输出,然后根据预定义的模式发送相应的输入。 ...

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

      其次,`expect`是一个基于`TCL`的工具,由Don Libes创建,其主要目的是自动控制交互式应用程序,特别是用于自动化SSH、Telnet和其他网络协议的登录过程。`expect`能够模拟终端输入,响应程序的输出,使得编写自动化...

      expect开源软件及其依赖库

      expect是一个由Don Libes在1993年创建的开源工具,主要用于自动化那些需要用户交互的任务,如SSH登录、telnet会话、FTP传输等。expect通过模拟键盘输入,响应程序的输出,实现了对命令行程序的自动化控制。它基于Tcl...

      expect-5.43.0和tcl8.4.11.zip

      它的核心功能在于模拟用户与命令行界面的交互,特别适合于自动化SSH登录、FTP传输、telnet会话等需要输入和等待响应的任务。expect-5.43.0版本是expect的一个稳定版本,包含了丰富的功能和修复的多个bug,使得它在...

      Tcl8 windows版-windows支持expect-用28M那个.rar

      使用expect,你可以编写脚本来自动执行一系列步骤,例如登录远程服务器、执行命令、检查返回结果,然后根据这些结果决定下一步的操作。这对于系统管理员和测试工程师来说非常有用,因为他们可以减少手动重复工作,...

      通过tcl安装expect

      在IT领域,`Expect`是一个强大的自动化脚本工具,它允许程序员或系统管理员与命令行接口(CLI)进行交互,特别是在需要输入响应的自动化场景下非常有用,如SSH登录、FTP传输等。`Expect`是基于TCL语言的一个扩展,...

      Tcl语言,expect脚本

      - **应用场景**: 典型的应用场景包括批量执行命令、自动登录和退出远程系统、执行复杂的多步骤任务等。 #### 五、总结 Tcl作为一种简单而强大的脚本语言,非常适合于开发自动化管理和控制脚本。结合Expect这样的...

      expect和tcl

      这对于自动化执行需要手动输入的命令或脚本非常有用,比如SSH登录、FTP传输、telnet会话等。 Expect脚本主要由以下几部分组成: 1. **初始化**: 定义要启动的进程,例如`spawn ssh user@example.com`。 2. **期待...

      expect-5.43.0-8.el5.x86_64

      在实际应用中,Expect可以用来做很多事情,比如自动执行SSH登录、备份数据库、自动化网络设备配置等。通过编写简单的脚本,你可以让Expect模拟人类用户与命令行界面的交互,从而实现无人值守的自动化任务。例如,你...

    Global site tag (gtag.js) - Google Analytics