expect脚本语言编写

什么是expect

expect是基于tcl的相对简单的一个免费的脚本编程工具语言,用来实现自动和交互式任务程序进行通信,无须人手工干预,比如ssh ftp 等,这些程序正常情况下都需要手工与他们进行交互,而使用expect就可以模拟人手工交互的过程,实现自动的和远端的程序交互,从而到达自动化的目的

expect程序工作流程

expect的工作流程可以理解为,spawn启动进程----->expect期待关键字----->send向进程发送字符------>退出结束

安装expect软件

服务端172.18.1.211

客户端 120.27.54.50

所谓的服务端其实也就是安装了expect的软件

[[email protected] ~]# yum list |grep expect

[[email protected] ~]# yum -y install expect.i686

2;安装好expect软件之后 现在服务器上测试下

[[email protected] ~]# ssh -p 22 [email protected]

3;写expect脚本

#!/usr/bin/expect                                              ##expect脚本

spawn ssh -p 22 [email protected]                  ##远程连接到服务器

set timeout 60

expect "*password:"                                         ##expect期待关键字

send "XXXXX\n"                                                    ##send向进程发送字符 XXXXX表示密码  "\n"表示回车

expect eof                                                          ##expect expect eof 表示这个语句的开头和结尾

exit                                                                       ##退出

在服务端172.18.1.211上操作

[[email protected] script]# vi test.exp

4;在服务端172.18.1.211上测试

[[email protected] script]# expect test.exp

一个简单的expect脚本就写好了

时间: 2024-10-12 10:17:33

expect脚本语言编写的相关文章

实现真正的自动化,expect脚本语言使用

实现真正的自动化,expect脚本语言使用 expect中的几个重要句子: expect的核心是spawn expect send set spawn 调用要执行的命令 expect 等待命令提示信息的出现,也就是捕捉用户输入的提示: send 发送需要交互的值,替代了用户手动输入内容 set 设置变量值 interact 执行完成后保持交互状态,把控制权交给控制台,这个时候就可以手工操作了.如果没有这一句登录完成后会退出,而不是留在远程终端上. expect eof 这个一定要加,与spawn

高质量编码--易变业务使用脚本语言编写

本文是阅读了<编写高质量代码 改善Java程序的151个建议>后学习理解后进行的产出,同样是为了方便我后面的回顾. 废话不多说,开始. 脚本语言是在运行期解释执行的,这种特性正是Java所缺少的,java是一种编译解释的语言,在进行修改后,就需要重新编译,才能实现修改的内容. 脚本语言的优点:灵活,便捷,简单.通过引入脚本语言可以使Java更加强大. 先上代码 import javax.script.Bindings; import javax.script.Invocable; import

L脚本语言编写的简单数学函数库

对于一种编程语言数学计算的功能当然是必不可少的,通过L脚本语言的基本数学运算功能实现数学计算库也很简单 在L脚本语言中,使用库之前需要进行导入,这和C语言的include引用Java的导入jar包是类似的 下面的例子是一个L脚本语言的库文件 #scplib #数学函数库 定义:函数,求圆的周长,半径 开始:函数,求圆的周长 计算:算式,ret,2*3.14*半径 显示:ret 结束:函数,求圆的周长 定义:函数,求圆的面积,半径 开始:函数,求圆的面积 计算:算式,ret,3.14*(半径*半径

提高java编程质量 - (一)易变业务使用脚本语言编写

脚本语言的3大特征: 1.灵活:脚本语言一般是动态类型,可以不声明变量类型直接使用,也可以在运行期改变类型:2.便捷:脚本语言是解释性语言,在运行期变更非常方便,而不用重启服务3.简单:脚本语言语法比较简单,易学 另外:java6以上默认支持JavaScript 例子: package com.test; import java.io.FileNotFoundException; import java.io.FileReader; import javax.script.Bindings; i

expect脚本语言用法示例

#!/usr/bin/expect set hostname [lindex $argv 0] set username [lindex $argv 1] set passwd [lindex $argv 2] set dbname [lindex $argv 3] set timeout 10 #spawn /usr/bin/ssh [email protected]$hostname #expect { # "yes/no" { send "yes";exp_c

L脚本语言的Helloworld

这是用L脚本语言编写的helloword #scp 定义:字符串,str1,"helloworld" 显示:字符串,str1 等待:用户输入,str1 还可以更简单 #scp 显示:"helloworld"

使用L脚本语言实现分布式计算的例子

一种编程语言要让大家接受需要有一个从理解到使用的过程,之前介绍的L脚本语言的设计思想和语法介绍也可能不那么直观, 后续我会编写一些L脚本语言的例子给大家参考 这里我先来写一个分布式计算的例子 其实分布式计算就是将计算任务分解给不同的计算机,由多个计算机实现共同的计算任务 这里,我们需要有一个管理者计算机,多个工作者计算机 管理者将任务分配给工作者,工作者完成计算任务后交给管理者,最后再由管理者将所有计算结果汇总 下面这个例子是L脚本语言编写的工作者,它不断在一个UDP的端口上监听,如果有发过来的

分发系统介绍、expect脚本远程登录、expect脚本远程执行命令、expect脚本传递参数

20.27 分发系统介绍 应用场景 当业务越做越大,服务器需求越来越多,几台服务器的话还好一点:当十几.几十台的时候,工作量就非常大!并且不规范,需要一个模板机分发到各个机器上去. 可以用开源的软件,expect脚本语言,进行实现分发系统的功能. 20.28 expect脚本远程登录 yum install -y expect 自动远程登录,并执行命令 #!/usr/bin/expect set host "192.168.21.130" set passwd "rootro

分发系统介绍,expect脚本远程登录,expect脚本远程执行命令,expect脚本传递参数

分发系统介绍 当我们要上线一个新代码的时候,如果机器少,我们的工作量不会很大,很容易完成,如果设备很多,有几十台,上百台的话,那我们的工作量会非常大,而且也不规范,这时,我们就可以用可以用开源的软件,expect脚本语言,进行实现分发系统的功能. expect脚本远程登录首先yum安装expectyum install -y expect 然后写一个expect的远程登录脚本#! /usr/bin/expectset host "192.168.133.132" 这是expect的变量