自动化控制和测试的软件工具 Expect

Public Domain
C/C++
Linux
2010-12-28
小编辑

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

Expect含有利用正则表达式进行模式匹配以及通用的编程功能,允许简单的脚本智能地管理如下工具:telent,ftp和ssh(这些工具都缺少编程的功能),宏以及其它程序。Expect脚本的出现使得这些老的软件工具有了新的功能和更多的灵活性。

一个简单的脚本程序例子就能实现自动的telnet会话:

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

评论(0)

暂无评论

暂无资讯

1
回答
linux中如何使用expect杀掉远程系统的进程?
hyman_huan 的回答 2017/04/21 14:28
最佳答案
这个问题已经解决。
3
回答
Linux Shell --- expect 脚本问题

我想用scp命令从一个服务器拷贝文件到另外一个,但是需要输入password,所以我写了个脚本如下: #! /usr/bin/expect spawn s...

2012/05/04 14:07
1
回答
expect脚本问题

#!/usr/bin/expect -f set timeout 3 spawn ssh root@192.168.1.1 expect "passwor...

没有更多内容

加载失败,请刷新页面

没有更多内容

十七周三次课

20.27 分发系统介绍 expect可以让我们实现自动登录远程机器,并且可以实现自动远程执行命令。当然若是使用不带密码的密钥验证同样可以实现自动登录和自动远程执行命令。但当不能使用密钥验证...

2018/05/16 17:37
8
0
expect 安装

本文转载 测试安装成功 分享一下 http://bluethink.iteye.com/blog/1079044

2013/12/22 21:16
102
0
免密登陆脚本(shell版)

自己写的脚本,可以用

2017/11/02 22:45
16
0
shell编程(下)

一、shell项目-分发系统-expect讲解 • yum install -y expect //安装命令 二、 自动远程登录 cd /usr/local/sbin vim 1.expect //编辑如下内容 #! /usr/bin/expect set host "192.168.0.182...

01/18 11:26
0
0
使用expect实现shell自动交互

shell脚本需要交互的地方可以使用here文档是实现,但是有些命令却需要用户手动去就交互如passwd、scp。对自动部署免去用户交互很痛苦,expect能很好的解决这类问题。 expect的核心是spawn e...

2014/03/13 20:53
1K
0
3、expect命令简介和使用

一、expect介绍 expect命令是基于tcl的,主要用于自动化交互式的处理。 expect表示期望,如果服务端期望输入验证信息,比如密码等都可以通过expect来发送 二、expect使用 #定义一个函数封装e...

2018/09/28 21:44
3
0
shell分发系统

场景介绍:运行php代码时,首先需要搭建LAMP或LNMP环境,然后将代码上传到服务器上去,但是由于业务发展,代码更新频繁,如果机器台数比较多,手工上传代码就比较麻烦,并且不专业,这时我们...

2018/04/26 08:14
20
0
20.27 分发系统介绍 20.28 expect脚本远程登录 20.29 expect脚本远程执行命令 20.30 expect脚本传递参数

## 20.27 分发系统介绍 ``` 分发系统: 能够把每段时间的最新代码分别发布到各服务器上去 上线: 就是把开发的代码发布到线上环境去 yum install -y expect ``` ## 20.28 expect脚本远程登录 ...

2018/04/24 21:36
8
0
CentOS下expect安装

Expect是在Tcl基础上创建起来的,它还提供了一些Tcl所没有的命令,它可以用来做一些linux下无法做到交互的一些命令操作,在远程管 理方面发挥很大的作用。 spawn命令激活一个Unix程序来进行交...

2016/06/15 10:29
1
0
CentOS下expect安装

Expect是在Tcl基础上创建起来的,它还提供了一些Tcl所没有的命令,它可以用来做一些linux下无法做到交互的一些命令操作,在远程管 理方面发挥很大的作用。 spawn命令激活一个Unix程序来进行交...

2016/06/15 10:59
8
0

没有更多内容

加载失败,请刷新页面

返回顶部
顶部