首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Linux expect 自动交互脚本用法

安装 expect expect是一个自动化交互套件,主要应用于执行命令和程序时,系统以交互形式要求输入指定字符串,实现交互通信。...expect自动交互流程: spawn启动指定进程 expect获取指定关键字 send向指定程序发送指定字符 执行完成退出. 注意该脚本能够执行的前提是安装了 expect。...expect 获取匹配信息匹配成功则执行expect后面的程序动作 send exp_send 用于发送指定的字符串信息 exp_continue...见谅~ 免交互expect eof和interact的区别 二者都是结束符号 expect eof :等待执行结束,用于执行自动化任务,无需后续继续交互,直接完成并退出。...Copyright: 采用 知识共享署名4.0 国际许可协议进行许可 Links: https://lixj.fun/archives/about-linux-expect

1.7K30
您找到你想要的搜索结果了吗?
是的
没有找到

Linux expect实现自动登录脚本实例代码

expect expect可以让我们实现自动登录远程机器,并且可以实现自动远程执行命令。当然若是使用不带密码的密钥验证同样可以实现自动登录和自动远程执行命令。...所以,这时候只要知道对方机器的账号和密码就可以通过expect脚本实现登录和远程命令。...大多数工作都要在虚拟机上完成,为此每天要执行很多次【ssh xxx@xxxxxx】指令登录虚拟机;有很多方式解决这个问题,如使用xshell、secureCRT等工具记录常用的连接,我就写了一个简单的脚本实现一键登录...~ login.sh脚本内容如下: #!.../login.sh】配置别名alias,或移动到可执行目录中,即可实现【login】一键登录; expect是一个处理交互的指令,通过expect我们可以把交互过程写到Shell脚本里以实现一些自动化操作

2.3K41

Linuxexpect工具免交互式shell脚本执行

Linuxexpect工具是一个根据脚本与其他交互式程序进行交互。通过在脚本中设定期望值和响应值进行交互操作。主要应用于执行命令和程序时,系统以交互形式要求输入指定字符串,实现交互通信。...以SSH KEY 生成以及发送到远程服务器为例简单介绍下expect工具 expect 启用选项: -c执行脚本前先执行的命令,可多次使用-ddebug模式,可以在运行时输出一些诊断信息,与在脚本开始处使用...-f从文件读取命令,仅用于使用#!时。如果文件名为"-",则从stdin读取(使用"./-"从文件名为-的文件读取)。..., 如果匹配成功, 就执行send的指令交互;否则等待timeout秒后自动退出expect语句send如果匹配到expect接受到的信息,就将send中的指令交互传递,执行交互动作。...exit退出expect脚本expect eofspawn进程结束后会向expect发送eof,接收到eof代表该进程结束interact执行完代码后保持交互状态,将控制权交给用户。

1.1K10

详解自动交互命令expect,免去手动输入!

#概述 expect是一个用来实现自动交互功能的软件套件,是基于TCL的脚本编程工具语言,方便学习,功能强大 #扩展TCL:全拼为Tool Command Language ,是一种脚本语言,由John...root@192.168.1.1 uptime expect "*password" {send *123456\r"} #提示:上述命令不能直接在linux命令行中执行,需要放入expect脚本中执行...test.log 1 192.168.1.1 3 #传参的总数 test2.exp #脚本的名字 expect中的if条件语句 #语法 if {条件表达式} { 指令 } 或 if {条件表达式...test3.exp usage:expect test3.exp file id host #示例2 #使用if语句判断脚本传参的个数,不管是否符合都给予提示 [root@game scripts]...expect中的特特殊关键字用于匹配过程,代表某些特殊的含义或状态,一般只用于expect命令中而不能在expect命令单独使用 #1.eof关键字 eof(end-of-file文件结尾)关键字用于匹配结束符

4K31

Linux 下自动应答工具 Expect 使用指南

# 下面的一个程序段是从一个有关登录的脚本里面摘取的 # abort是在脚本的别处定义的过程,而其他的action使用类似与C语言的Tcl原语 expect "*welcome*" break "*...字符可以使用反斜杠来单独的引用,反斜杠也被用于语句的延续,如果不加反斜杠的话,语句到一行的结尾处就结束了。这和 Tcl 也是一致的。Tcl 在发现有开的单引号或者开的双引号时都会继续扫描。...而且,分号可以用于在一行中分割多个语句。这乍听起来有点让人困惑,但是,这是解释性语言的风格,但是,这确实是 Tcl 的不太漂亮的部分。...工具安装 源代码和下载地址都是由 Linux 软件基金会维护的(sourceforge) # 因为Expect需要Tcl编程语言的支持 $ sudo yum install -y gcc $ sudo...欢迎投稿,投稿邮箱: editor@hi-linux.com。 ? ?

1.6K21

学习笔记0620----shell项目(分发系统)

expect:一个实现自动交互功能的软件套件,基于Tcl的一种脚本语言,具有简单的语法; 功能:实现自动登录远程机器,并自动执行命令;和shell脚本结合,可以实现完全自动化; 注意:若是使用不带密码的密钥验证同样可以实现自动登录和自动远程执行命令...在expect下 定义变量,用 set,比如 定义变量a为1 :set a 1 expect 使用expect语句进行交互 \r表示回车 exp_continue 表示继续 \r 表示换行...@linux-01 expect]# 2.3 expect脚本传递参数 2.3.1 创建脚本 [root@linux-01 expect]# vim load2.expect #!...2.4 expect脚本同步文件 2.4.1 设置脚本 expect eof 语句解释: spawn执行的命令结果,会被expect捕捉到。...脚本指定参数 2.5.1 设置脚本 [root@linux-01 expect]# vim load4.expect #!

1.3K21

Linux系统编程-Shell脚本基本使用(变量、运算符、语句等)

Shell脚本介绍 Shell 本身是一个用 C 语言编写的程序, Shell 作为命令语言时,可以交互式地解释和执行用户输入的命令;作为程序设计语言时,支持定义各种变量和参数,并提供了许多在高级语言中才具有的控制结构...Shell 脚本不需要编译,是依靠解析器解析运行,只要有一个能编写代码的文本编辑器和一个能解释执行的脚本解释器就可以了。所以效率上是没有编译型语言速度快,不适合写大量运算的代码。...Shell脚本的基本语法规则 创建一个简单的脚本文件并运行: [wbyq@wbyq linux_c]$ vim shell.sh [wbyq@wbyq linux_c]$ ls /bin/sh -l lrwxrwxrwx.../shell.sh 12345 jsdsdsd [wbyq@wbyq linux_c]$ sh shell.sh 12345 jsdsdsd Shell脚本一些规则总结: 在脚本代码里#表示注释,并且只是支持单行注释...d=$d\n" d=`expr $a '*' $b` printf "d=$d\n" d=`expr \( 12 + 66 + 77 \) \* 12` printf "d=$d\n" 6. if语句基本用法

86410

玩转企业常见应用与服务系列(十):自动应答工具 expect 原理与实践

# 下面的一个程序段是从一个有关登录的脚本里面摘取的 # abort是在脚本的别处定义的过程,而其他的action使用类似与C语言的Tcl原语 expect "*welcome*" break "*...字符可以使用反斜杠来单独的引用,反斜杠也被用于语句的延续,如果不加反斜杠的话,语句到一行的结尾处就结束了。这和 Tcl 也是一致的。Tcl 在发现有开的单引号或者开的双引号时都会继续扫描。...而且,分号可以用于在一行中分割多个语句。这乍听起来有点让人困惑,但是,这是解释性语言的风格,但是,这确实是 Tcl 的不太漂亮的部分。...工具安装 源代码和下载地址都是由 Linux 软件基金会维护的(sourceforge) # 因为Expect需要Tcl编程语言的支持 $ sudo yum install -y gcc $ sudo...exit } Expect使用Tcl作为语言核心。不仅如此,不管程序是交互和还是非交互的,Expect都能运用。这是一个小语言和Unix的其他工具配合起来产生强大功能的经典例子。

16010

shell脚本快速入门之-----深入介绍Expect免交互

免交互:自动化处理的前提条件 一、Expect概述 Expect是建立在tc|基础.上的一个工具,Expect 是用来进行自动化控制和测试的工具。主要解决shelI脚本中不可交互的问题。...对于大规模的linux运维很有帮助 在linux运维和开发中,我们经常需要远程登录服务器进行操作,登录的过程是一个交互的过程,可能会需要输入yes/no,password等信息。...yes 自动发送指令 send:向进程发送字符串,用于模拟用户的输入 不能自动回车换行,一般要加\r(回车) expect expect的一个内部命令,判断上次输出结果里是否包含指定的字符串...没有空格则表示脚本名称 ; argv n有空格则代表下标 Expect脚本必须以interact或expect eof 结束,执行自动化任务通常expect eof就够了 expect eof 是在等待结束标志...\r”} expect “ccc” {send “CCC\r”} 方式二:只要匹配了aaa或bbb或ccc中的任何一个,执行了了相应的send语句后将会退出该expect语句 exoect { “aaa

2K31

安全运维中基线检查的自动化之ansible工具巧用

demo,linux_centos7.sh为创建在主控端的基线检查脚本脚本执行结束即可在本地的/tmp/check目录下查看到节点的执行结果: 上述的过程,在面对众服务器节点的时候可以省去很多工作量...but 当节点没有python的情况下,上述脚本不适用的哦,会出现如下报错提示。...,如果有安装也需要更新到最新版),具体主控端安装环境要求如下: ansible的主控端只能安装在类unix的操作系统上,其他发行版的linux安装可以详见ansible中文权威指南-安装管理主机,本文的安装方法仅适用于...这里斗哥的解决方案是通过expect来实现自动化的交互,以下脚本适用条件于节点无python环境,且节点密码一致的情况。 [root@root tmp]# ./demo #!...#主控端创建/tmp/check文件夹用于存放取回的脚本执行结果 mkdir /tmp/check #使用script模块执行脚本 ansible web -m script -a "/tmp/linux_centos7

2.3K31

Linux expect详解

Linux expect详解 2018-07-11 分类:Linux Shell / 系统运维 / 编程开发 阅读(6670) 评论(0)  随处可见的expect 第一次见expect这个命令还是我第一次参加全量上线的时候...,那是公司的一个牛人用Shell脚本写的一套自动部署、MD5 比对、发布的全量上线工具,没事的时候,看了下其中的几个脚本,好多的expect命令。...expect基础 在使用expect时,基本上都是和以下四个命令打交道: 命令 作用 send 用于向进程发送字符串 expect 从进程接收字符串 spawn 启动新的进程 interact 允许用户交互...interact命令用的其实不是很多,一般情况下使用spawn、send和expect命令就可以很好的完成我们的任务;但在一些特殊场合下还是需要使用interact命令的,interact命令主要用于退出自动化...{ send "eof" } } 其中exp_continue表示循环式匹配,通常匹配之后都会退出语句,但如果有exp_continue则可以不断循环匹配,输入多条命令

3.3K50

MongoDB自动备份全过程实录

expect 登场了——一款提供自动交互的工具。 安装expect yum install -y expect 编写expect脚本 expect语法非常简单,和Shell几乎一样。.../bin/expect # spawn是expect语句,执行命令前需添加该字眼 set DATE [exec date "+%Y-%m-%d"] set DIR /xxxxx/dbbak-$DATE...自动备份 笔者利用Linux定时任务实现自动执行。 crontab -e 在新窗口中添加如下内容: 0 0 1 * * ?.../usr/bin/expect 上面expect shell的完整路径 原本以为这样就可以定时执行了,然而却无法正常执行。 百度后,将脚本修改为如下,终于可以正常执行了。 #!.../bin/expect # spawn是expect语句,执行命令前需添加该字眼 set DATE [exec date "+%Y-%m-%d"] set DIR /xxxxx/dbbak-$DATE

51560
领券