expect工具

一.expect工具介绍

在写脚本的过程当中不可避免的需要去写交互式命令

那么如何让交互式命令在脚本中自动执行?

使用expect工具

作用:捕获交互式的输出,自动执行交互式命令

如上图所示,可以使用expect工具去捕获交互式命令的提示信息。

然后让expect工具自动地在这个提示信息之后去填充我们准备好的一些数据

1.spawn命令

作用:指定捕获哪个命令的输出,即指定捕获哪个交互式命令

1.spawn命令是expect命令提供给我们的

这个命令可以用来去捕获交互式命令产生的输出。

语法:spawn  命令

2.expect命令

作用:指定捕获的信息,即指定捕获这个交互式命令的哪部分提示信息

语法:

expect  提示信息

3.send命令

作用:向交互式命令发送指令,向交互式命令发送指定信息

语法:

send  参数

案例:捕获passwd命令的输出,实现自动设置密码

如上图所示,是检测机器中是否含有expect工具,如果没有这个expect工具该去安装这个工具

首先先讲这个expect工具的使用方法

首先指定命令解释器,即#!/usr/bin/expect

如上图所示,就是先指定命令解释器,

然后使用spawn去指定什么命令,

expect去指定捕获这个命令输出的什么信息,

send去指定向交互式命令发送指令,

\n换行符,相当于回车

如上图所示,这些命令本身不是shell命令,如果拿bash去执行这个命令就会报错。

如上图所示,是如何执行expect 文件,以及验证expect是否执行成功的操作。

如上图所示,可以在expect文件中去设定等待捕获时间,当超过这个捕获时间之后,就结束捕获流程。

案例:结合shell脚本去使用

如上图所示,这是如何在shell脚本中去使用expect工具的示例

 

如上图所示,这是在shell脚本中执行expect工具实现交互式命令自动执行的操作。

案例:配置免密ssh

如上图所示,这是生成密钥的操作,

如上图所示,这是拷贝密钥的操作,在拷贝密钥的时候,需要输入目的主机的密码。

而这就是一个交互式命令,

将来这条命令在脚本的时候,我们就可以借助expect工具,去自动执行免密ssh的操作。

如上图所示,当192.168.183.10的机器第一次去连接192.168.183.11的机器的时候,需要捕获的信息的192.168.183.10的机器第二次去连接192.168.183.12的机器的时候,需要捕获的信息是不同的。

面对上面这个情况,怎么处理呢?

如上图所示,如果192.168.183.10的机器接收到对方机器的密钥信息之后,就会把密钥信息保存到这个文件中,所以我刚才去连接哪个183.11的时候,没有yes或者no的提示了。

如上图所示,为了方便expect信息的统一捕获,我们可以先把这个文件给删了。

如上图所示,可以在192.168.183.10的机器上写这样一个脚本文件,如果存在konwn_hosts就先把这个文件给删了,

如上图所示,可以在192.168.183.11的机器上创建密钥对

如上图所示,-f是指定私钥文件的存放地址,-N是指定私钥文件的密码

 

如上图所示,是创建密钥对的自动化操作。

如上图所示,是192.168.183.10对192.168.183.11的机器的免密ssh脚本。

如上图所示,此时192.168.183.10的机器能实现对192.168.183.11的免密操作。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/894927.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

什么是大数据分析:定义、优缺点、应用、机遇和风险

大数据分析的概念已经成为我们社会不可或缺的一部分。众多公司和机构已经开发了大数据应用程序,取得了不同程度的成功。社交媒体平台和传感器等技术正在以前所未有的速度生成数据,就像一条装配线。如今,几乎所有东西都是物联网的一部分&#…

[Xshell] Xshell的下载安装使用及连接linux过程 详解(附下载链接)

前言 Xshell.zip 链接:https://pan.quark.cn/s/5d9d1836fafc 提取码:SPn7 安装 下载后解压得到文件 安装路径不要有中文 打开文件 注意!360等软件会拦截创建注册表的行为,需要全部允许、同意。或者退出360以后再安装。 在“绿化…

vscode pylance怎么识别通过sys.path.append引入的库

问题 假如我有一个Python项目 - root_path -- moduleA ---- fileA.py -- moduleB ---- fileB.py# fileAimport sys sys.path.append(moduleB)import fileB # vscode pylance找不到,因为sys.path.append(moduleB)是动态添加的print(fileB)结果 代码正常运行但是vs…

【北京迅为】《STM32MP157开发板嵌入式开发指南》- 第五十四章 Pinctrl 子系统和 GPIO 子系统

iTOP-STM32MP157开发板采用ST推出的双核cortex-A7单核cortex-M4异构处理器,既可用Linux、又可以用于STM32单片机开发。开发板采用核心板底板结构,主频650M、1G内存、8G存储,核心板采用工业级板对板连接器,高可靠,牢固耐…

基于百度智能体开发爱情三十六计

基于百度智能体开发爱情三十六计 文章目录 基于百度智能体开发爱情三十六计1. 爱情三十六计智能体2. 三十六计开发创意3. 智能体开发实践3.1 基础配置3.2 进阶配置3.3 调优心得3.4可能会遇到的问题 4. 为什么选择文心智能体平台 1. 爱情三十六计智能体 爱情三十六计 是一款基于…

Kaggle竞赛——森林覆盖类型分类

目录 1. 竞赛简要2. 数据分析2.1 特征类型统计2.2 四个荒野区域数据分析2.3 连续特征分析2.4 离散特征分析2.5 特征相关性热图2.6 特征间的散点关系图 3. 特征工程3.1 特征组合3.2 连续特征标准化 4. 模型搭建4.1 模型定义4.2 绘制混淆矩阵和ROC曲线4.3 模型对比与选择 5. 测试…

从0-1实战演练后台管理系统 (3)还在寻找优秀的后台管理系统?Pure Admin 源码及目录结构带你一探究竟!

一、获取源码: 从-gitee-上拉取从 Gitee 上拉取 1、完整版前端代码 git clone https://gitee.com/yiming_chang/vue-pure-admin.git2、国际化精简版前端代码 git clone -b i18n https://gitee.com/yiming_chang/pure-admin-thin.git3、非国际化精简版前端代码 git clone ht…

【Vue】Vue扫盲(七)如何使用Vue脚手架进行模块化开发及遇到的问题(cmd中无法识别vue命令、vue init webpack 命令执行失败)

上篇文章: Vue】Vue扫盲(六)关于 Vue 项目运行以及文件关系和关联的详细介绍 文章目录 一、安装 相关工具二、处理相关问题问题一:vue -v 提示 vue不是内部或外部命令,也不是可运行的程序或批处理文件。问题二&#xf…

wifi、热点密码破解 - python

乐子脚本,有点小慢,试过多线程,系统 wifi 连接太慢了,需要时间确认,多线程的话系统根本反应不过来。 也就可以试试破解别人的热点,一般都是 123456 这样的傻鸟口令 # coding:utf-8 import pywifi from pyw…

el-table修改指定列字体颜色 ,覆盖划过行的高亮显示文字颜色

修改指定列字体颜色 ,覆盖划过行的高亮显示文字颜色 代码如下&#xff1a; <div class"c1"><el-table:data"tableData"striperow-class-name"custom-table-row"style"width:100%"cell-mouse-enter"lightFn"cell-…

Android开发 Camera2(最全代码Camera2开发)

介绍 google已经在Android5.1之后取消了对Camera1的更新,转而提供了功能更加强大的Camera2.虽然新版本依然可以使用Camera1但是,不管是各种机型适配还是拍照参数自定义都是很鸡肋的.跟上最新的技术了解Camera2是必要的.关于Camera2的兼容一般是支持API22之后包括API22的Androi…

Flink时间语义和时间窗口

前言 在实际的流计算业务场景中&#xff0c;我们会发现&#xff0c;数据和数据的计算往往都和时间具有相关性。 举几个例子&#xff1a; 直播间右上角通常会显示观看直播的人数&#xff0c;并且这个数字每隔一段时间就会更新一次&#xff0c;比如10秒。电商平台的商品列表&a…

【大数据技术基础 | 实验一】配置SSH免密登录

文章目录 一、实验目的二、实验要求三、实验原理&#xff08;一&#xff09;大数据实验一体机&#xff08;二&#xff09;SSH免密认证 四、实验环境五、实验内容和步骤&#xff08;一&#xff09;搭建集群服务器&#xff08;二&#xff09;添加域名映射&#xff08;三&#xff…

基于SpringBoot+Vue+MySQL的智慧博物馆管理系统

系统展示 用户前台界面 管理员后台界面 系统背景 随着信息技术的飞速发展&#xff0c;智慧化已成为博物馆发展的新趋势。然而&#xff0c;当前许多博物馆仍面临着预约困难、参观体验不佳等问题&#xff0c;严重影响了博物馆的服务质量和公众形象。传统的预约和票务管理方式已难…

mac安装brew时踩坑解决方案

安装包 mac上如果按照git等工具可能会使用brew&#xff0c;例如使用&#xff1a;$ brew install git命令&#xff0c;如果电脑没有按照brew&#xff0c;则会提示&#xff1a;zsh: command not found: brew 解决方案 需要我们打开brew的官网https://brew.sh/&#xff0c;复制…

C语言 | Leetcode C语言题解之第476题数字的补数

题目&#xff1a; 题解&#xff1a; class Solution { public:int findComplement(int num) {int pos;for (int i 30; i > 0; i--) {if (num & (1 << i)) {pos i;break;}}return (((1LL << (pos 1)) - 1) ^ (num));} };

mysql的重置

今天用Navicat16去连接mysql突然就连不上了。一直报错 连接本地mysql时出现2003-Can‘t connect to MySql server on ‘localhost‘(10061)错误。 以为是Navicat过期了。正好Navicat推出了Lite 17免费版本&#xff0c;心想正好可以尝尝鲜&#xff0c;而且还支持连接Redis&#…

Windows git 配置

需要在git-bash的目录下,配置.ssh 的配置文件 要 .ssh 目录下的配置无法使用

企业或设计师如何使用ComfyUI轻松构建项目AI工作流

ComfyUI是一个为Stable Diffusion专门设计的基于节点的图形用户界面&#xff08;GUI&#xff09;。它使用户能够通过链接不同的块&#xff08;称为节点&#xff09;来构建复杂的图像生成工作流程。这些节点可以包括各种任务&#xff0c;如加载检查点模型、输入提示、指定采样器…

CCS字体、字号更改+CCS下载官方链接

Step1、 按照图示箭头操作 step2 Step3 点击确定&#xff0c;点击Apply(应用)&#xff0c;点击Apply and close(应用和关闭) 4、历代版本下载链接 CCS下载&#xff1a;官方链接https://www.ti.com/tool/CCSTUDIO The last but not least 如果成功的解决了你的问题&#x…