脚本代码如下:
##############################################
#!/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
- 浏览: 1914889 次
- 性别:
- 来自: 北京
最新评论
-
x593106671:
写的真不错
对研发团队里技术分享的一些思考 -
Ann-phei:
大神 您好~我是博文视点编辑安娜,可否加我微信或QQ 8030 ...
ElasticSearch的Java Api基本操作入门指南 -
feifeiwudi:
feifeiwudi 写道发现了一个 Elasticsearc ...
ElasticSearch的Java Api基本操作入门指南 -
feifeiwudi:
发现了一个 Elasticsearch 2.3.3 JAVA ...
ElasticSearch的Java Api基本操作入门指南 -
风火轮子:
基于大数据技术推荐系统算法案例实战教程网盘下载:https:/ ...
大数据/数据挖掘/推荐系统/机器学习相关资源
linux expect, spawn用法
- 博客分类:
- 技术总结
相关推荐
linux下的expect的简单用法及举例
linux下交互式命令expect使用方法
工作中需要对几十台服务器做互信,无意中发现expect命令,研究一番。 expect命令在自动交互中很好用。 压缩包包含安装步骤,安装包,以及 自动互信脚本。
linux expect安装软件 附安装文档,提供expect-5.43.0.tar和tcl8.4.11-src.tar.zip,并附有readme.md,指导安装
using expect in the bash, when spawning multiple session to many Linux machines, need to switch the host and send command, keep all the sessions online and can switch as you like
linux script expect脚本编写方法
学习安装expect,expect功能强大,非常详细的安装配置过程。
包含两个包: expect-5.43.0-8.el5.i386.rpm expect-devel-5.43.0-8.el5.i386.rpm 功能介绍见:http://blog.csdn.net/wang7dao/article/details/7724917
expect是一个自动化交互套件,主要应用于执行命令和程序时,系统以交互形式要求输入指定字符串,实现交互通信。
用Expect实现Linux自动远程登陆.pdf
expect 说明 执行方法 expect选项 命令(参数)说明 示例
linux自动化管理的必备工具,或许你需要perl,但个人觉得expect更好,针对性强。
expect是一个自动化交互套件,主要应用于执行命令和程序时,系统以交互形式要求输入指定字符串,实现交互通信
expect是一种自动交互语言,能实现在shell脚本中为scp和ssh等自动输入密码自动登录。下面这篇文章主要介绍了linux中使用expect的方法示例,需要的朋友可以参考借鉴,下面来一起学习学习吧。
expect的linux安装包;
主要是linux上要使用的expect 和 依赖tcl ,可以方便的使用,直接用 rpm -ivh ... 命令就可以使用了.
实战:expect实现无交互登录 正则表达式 sed awk awk高级应用 cut
Expect手册中文版 Expect-----能与交互式程序进行“可程序化”会话的脚本语言 概述: Expect是一种能够按照脚本内容里面设定的方式与交互式程序进行“会话”的程序。根据脚本内容,Expect可以知道程序会提示或反馈...
expect交互式工具软件,实现自动化操作;expect使用Tcl作为语言核心,这一种小类语言和其他unix工具配合使用可以产生强大功能。