脚本代码如下:
##############################################
#!/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
- 浏览: 1975132 次
- 性别:
- 来自: 北京
最新评论
-
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简单用法及举例 #### 一、引言 在Linux环境中,自动化运维是提高工作效率的重要手段之一。而`Expect`作为一种强大的自动化工具,可以用来模拟交互式会话,实现对远程服务器的自动登录、命令执行...
`expect`脚本主要通过`spawn`命令启动一个进程,`expect`等待特定的输出,然后使用`send`命令发送输入,如此反复,直至完成自动化流程。这种自动化方式在管理远程服务器、执行SSH登录、自动备份、软件升级等场景中...
### Linux下的Expect交互式命令使用方法 #### 一、Expect简介 Expect 是一种自动化交互式命令行工具,它主要用于在 Linux 或 Unix 系统中控制交互式应用,例如 Telnet、SSH、FTP 和其他需要与用户进行交互的应用...
总的来说,Linux Expect 提供了一种强大且灵活的方法来自动化那些需要用户交互的任务,极大地提高了运维效率,特别是在需要大量手动操作的场景下。通过熟练掌握 Expect,IT专业人员可以编写出高效的自动化脚本,减少...
下面我们将详细介绍expect的一些关键概念和使用方法: 1. **基本结构**:一个expect脚本通常包含`spawn`、`expect`和`send`三个主要部分。`spawn`用于启动一个进程,例如打开一个telnet或ssh连接;`expect`则等待并...
首先,我们需要理解`expect`的基本用法。`spawn`命令用于启动一个新的进程,例如打开一个shell会话或运行特定的程序。例如,你可以这样使用`spawn`来打开一个SSH连接: ```bash #!/usr/bin/expect spawn ssh user@...
Linux中的`expect`工具是一个强大的自动化脚本工具,主要用于与命令行交互,特别是与需要用户输入的程序进行自动化通信,如SSH登录、FTP传输等。它基于TCL语言,因此在使用`expect`之前需要先确保系统安装了TCL和...
### Linux经典脚本expect的基本用法与示例详解 #### 一、expect简介与应用场景 在Linux环境下,系统管理员和开发人员经常会遇到需要自动化执行的任务,尤其是那些涉及到远程登录、文件传输等交互式操作的场景。...
在Linux环境下,使用 Expect 可以编写一个自动登录脚本,例如 `login.sh`。这个脚本的核心在于四个主要的 Expect 指令: 1. **spawn**:这个命令用来启动一个新的进程,通常会是需要交互的应用程序,如 `ssh` 命令...
总结起来,`expect`和`TCL`的组合提供了一种强大且灵活的方法来自动化远程Linux系统的管理任务。通过学习和熟练掌握这两个工具,IT管理员和开发者可以显著提高工作效率,减少手动操作带来的错误和时间消耗。通过下载...
安装和使用这些软件,你可以在Linux环境中编写和运行`expect`脚本,从而实现SSH登录远程服务器的自动化。 总的来说,`expect`是Linux系统管理员和自动化工程师的强大工具,通过结合SSH协议,它可以方便地进行远程...
”中可以看出,这份文档是关于如何在 Linux 系统中使用 Expect 脚本来自动化交互式任务的一个学习资源。 ### 一、Expect简介 #### 1.1 什么是Expect? Expect 是一个用于自动化交互式任务的工具包,由 Don Libes ...
/usr/bin/expect 是一个Unix/Linux环境下的脚本开头,用于指定解释器执行该脚本。这个特定的命令表示该脚本将由 Expect 程序来执行。Expect 是一个强大的自动化工具,常用于交互式应用程序的自动化,尤其是与远程...
#### 使用Expect进行模拟键盘输入 **Expect**是一款强大的自动化工具,主要用于简化交互式应用(如telnet、ftp、ssh)的操作。它通过模仿用户行为来执行命令或输入数据,常用于构建自动化脚本。 ##### 基本语法与...
核心概念包括Spawn(用于启动新的进程)、Expect(用于匹配输出并做出反应)和Send(用于向进程发送输入)。 2. **交互式命令执行**:在Java应用中,通常使用Runtime或ProcessBuilder类来执行系统命令。但这些方法...
通过上述步骤,我们不仅学会了如何使用Shell+Expect进行远程登录,还掌握了创建自动化脚本的基本方法。这种技能对于系统管理员来说尤其重要,因为它可以极大地提高日常运维工作的效率。希望本文能为你提供有用的指导...
在Linux系统中,expect命令是一种强大的工具,它允许用户编写自动化脚本来处理那些通常需要人工交互的...希望这篇内容能对你在Linux环境下使用expect编写自动化交互脚本有所帮助,并鼓励你去探索更多expect的高级功能。
### expect学习笔记及实例详解 #### 一、expect简介与基本语法 **expect** 是一个基于 **Tcl** 的程序,主要用于自动化交互式...此外,还提供了一些注意事项和扩展知识,帮助读者更全面地掌握 expect 的使用方法。
**linux下交互式命令expect使用方法.doc** `Expect`的核心在于它可以模拟用户与程序的交互。以下是一些基本的使用方法: 1. **启动会话**:使用`spawn`命令启动一个进程,例如打开一个shell: ```tcl spawn bash...