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
分享到:
相关推荐
利用EXPECT实现路由器自动配置.pdf
昨天一个网友问如何能够将输入密码的工作在shell里面自动完成,研究了一下,发现这种交互式的工作,普通的shell实现不了,据说可以借助expect来搞定,所以初步学习了一下expect,成果和大家分享一下: 应用一: 实现...
用Expect实现Linux自动远程登陆.pdf
主要介绍用expect实现ssh自动登录服务器并进行批量管理的实现方法,需要的朋友可以参考下
expect是一个自动化交互套件,主要应用于执行命令和程序时,系统以交互形式要求输入指定字符串,实现交互通信
expect是一个免费的编程工具,用来实现自动...而利用expect,则可以根据程序的提示,模拟标准输入提供给程序,从而实现自动化交互执行。这就是expect!!! 该资源包含expect5.45.tar.gz和tcl8.4.20-src.tar.gz压缩包
我们通过Shell可以实现简单的控制流功能,如:循环、...下面这篇文章主要给大家介绍了关于利用expect命令实现Shell自动化交互的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面来一起看看吧。
基于expect自动交互完成批量服务器磁盘空间使用量的查询脚本(使用前请先安装expect),文件包含一个 ip列表文件ipList 可执行脚本disk.sh expect脚本 解压并赋予可执行权限,更改ipList文件内的ip和密码,执行fdik....
expect可以让我们实现自动登录远程机器,并且可以实现自动远程执行命令。当然若是使用不带密码的密钥验证同样可以实现自动登录和自动远程执行命令。但当不能使用密钥验证的时候,我们就没有办法了。所以,这时候只要...
本篇文章给大家介绍在Linux中使用expect脚本实现远程机器自动登录,前提是要创建一个expec脚本ssh_expect,接下来定义一些命令别名等,下面跟着脚本之家小编一起学习学习吧
自动登录到多台服务器的shell脚本,用expect来实现的一段代码,需要的朋友可以参考下
MT7628 MT7621 已经编译好的expect,可以下载直接使用,免去交叉编译的麻烦 expect是一个免费的编程...而利用expect,则可以根据程序的提示,模拟标准输入提供给程序,从而实现自动化交互执行。这就是expect!!!
expect自动登录实战,主要讲述怎么安装、使用expect工具进行跨服务器的命令操作等,以及与shell脚本的结合使用案例。
最近项目需要实现单边无密登录,去网上搜索了下相关文章,实践之后发现几乎都不能用。于是结合expect的使用方法自行写了一个,通过验证可用。现在总结在这供需要的朋友参考。 代码如下: EXPECT=/usr/bin/expect ...
工具可以自动Telnet或者Ftp到指定的服务器上,成功login之后自动执行一些命令来完成所需的工作。 当然,有很多编程语言可以去解决此类问题,比如用C、Perl、或者Expect。 显然,尽管C是无所不能的,但是解决此类...
linux-expect模拟键盘输入实现定时登录教程(内含expect安装包、教程)
ActiveTcl在win 64位系统上,expect+telnet是无法工作的。因为expect最后发布的版本为32位...telnet.tcl是纯tcl语言实现的telnet程序。可以根据自身需求,在源码的基础上稍作修改调整。对数通行业自动化任务非常有价值
CentOS利用expect批量推送ssh public key的脚本