shell---expect
1.expect的安装
[root@qfedu ~] yum -y install expect
2.expect的语法:
用法:
1)定义expect脚本执行的shell
#!/usr/bin/expect -----类似于#!/bin/bash
2)spawn
spawn是执行expect之后后执行的内部命令开启一个会话 #功能:用来执行shell的交互命令3)expect ---相当于捕捉
功能:判断输出结果是否包含某项字符串(相当于捕捉命令的返回的提示)。没有捕捉到则会断开,否则等待一段时间后返回,等待通过timeout设置
4)send
执行交互动作,将交互要执行的命令进行发送给交互指令,命令字符串结尾要加上“\r”,#---相当于回车
5)interact
执行完后保持交互状态,需要等待手动退出交互状态,如果不加这一项,交互完成会自动退出
6)exp_continue
继续执行接下来的操作
7)timeout
返回设置超时时间(秒)
如果添加interact参数将会等待我们手动交互进行退出。如果不加interact参数在登录成功之后会立刻退出。
expect eof #也是直接退出expect模式
1.
vim expect01.sh#!/usr/bin/expect
spawn ssh root@192.168.246.115expect {"yes/no" { send "yes\r"; exp_continue }"password:" { send "1\r" };
}
interactchmod +x expect01.sh./expect01.sh
2.
设置变量与进行传参的方式
#注意:expect环境中设置变量用set,识别不了bash方式定义的变量 vim expect01.sh#!/usr/bin/expect
set user root
set pass 1
set ip [ lindex $argv 0 ] #expect固定写法,从0开始,第一个位置参数,相当于shell中的$1
set timeout 10spawn ssh $user@$ip
expect {"yes/no" { send "yes\r"; exp_continue }"password:" { send "$pass\r" };
}
interact./expect01.sh 10.7.49.27
练习
进行批量推送公钥实现免密连接,ping通一个ip地址连接一个ip
vim getip_push.sh#!/usr/bin/bash
#判断expect命令是否安装
rpm -qa expect &> /dev/null
if [ $? -ne 0 ];thenyum install -y expect
fi#判断主机下面是否生成秘钥,如果没有生成秘钥
if [ ! -f ~/.ssh/id_rsa ];thenssh-keygen -t rsa -P "" -f ~/.ssh/id_rsa
fi#循环执行获取up状态的ip地址。
for i in {2..254}
do{ip=192.168.198.$iping -c1 $ip &> /dev/nullif [ $? -eq 0 ];thenecho "$ip" >> up_ip.txtset timeout 10/usr/bin/expect <<-EOF #shell脚本中调用expect命令spawn ssh-copy-id $ipexpect {"yes/no" { send "yes\r"; exp_continue }"password:" { send "1\r" };}expect eofEOFfi } &
wait
done
echo "finish..."chmod +x getip_push.sh ./getip_push.sh
[root@mysql-server script]# cat shuzu.sh
#!/bin/bash
server_ip=(192.168.209.166 192.168.209.168 192.168.209.169)
server_name=(web-1 web-2 mysql-server)
for (( i=0; i<${#server_ip[@]}; i++ ))
doecho $i-----${server_ip[i]}-----${server_name[i]}
done
echo "请输入要连接的序号: " && read n
if [[ $n -ge 0 && $n -lt ${#server_ip[@]} ]];thenecho "正在链接${server_ip[n]}"sleep 1/root/expect/expect.sh ${server_ip[n]}
elseecho "请输入范围内的序号..."sleep 1
fi[root@bogon ~]# cat exp.sh
#!/usr/bin/expect
spawn ssh $user@$ip
expect {"yes/no" { send "yes\r";exp_continue }"password:" { send "1\r"};}
interact
相关文章:
shell---expect
1.expect的安装 [rootqfedu ~] yum -y install expect 2.expect的语法: 用法: 1)定义expect脚本执行的shell #!/usr/bin/expect -----类似于#!/bin/bash 2)spawn spawn是执行expect之后后执行的内部命令开启一个会话 #功能:用来执行shell的交互命令 3)…...
基于PHP的在线编程课程学习系统
有需要请加文章底部Q哦 可远程调试 基于PHP在线编程课程学习系统 一 介绍 在线编程课程学习系统基于原生PHP开发,数据库mysql,前端jquery.js。系统角色分为学生,教师和管理员。(附带参考设计文档) 技术栈:phpmysqljquery.jsphps…...
深度学习概述
近年来,我们在媒体上到处可见人工智能(AI)这个词,而深度学 习是人工智能的一种实现方法。下面我们就来简单地看一下深度学习具 有怎样划时代的意义。 下面是三张花的图片,它们都具有同一个名字,那究竟是什…...
[原创](现代Delphi 12指南):[macOS 64bit App开发]: [1]如何使用原生NSAlert消息框 (runModal模式)
[作者] 常用网名: 猪头三 出生日期: 1981.XX.XX 企鹅交流: 643439947 个人网站: 80x86汇编小站 编程生涯: 2001年~至今[共24年] 职业生涯: 22年 开发语言: C/C++、80x86ASM、Object Pascal、Objective-C、C#、R、Python、PHP、Perl、 开发工具: Visual Studio、Delphi、XCode、…...
【NumPy完全指南】从基础操作到高性能计算实战
📑 目录 一、NumPy核心价值1.1 科学计算现状分析1.2 ndarray设计哲学 二、核心数据结构解析2.1 ndarray内存布局2.2 数据类型体系 三、矢量化编程实践3.1 通用函数(ufunc)示例3.2 广播机制图解 四、高性能计算进阶4.1 内存预分配策略4.2 Cython混合编程 五、典型应用…...
深入解析词嵌入(Word2Vec、GloVe)技术原理:从词语到向量的转变
📌 友情提示: 本文内容由银河易创AI(https://ai.eaigx.com)创作平台的gpt-4o-mini模型生成,旨在提供技术参考与灵感启发。文中观点或代码示例需结合实际情况验证,建议读者通过官方文档或实践进一步确认其准…...
Android学习总结之点击登录按钮流程
1. 事件分发阶段 1.1 触摸事件产生 当用户点击屏幕上的登录按钮时,触摸屏硬件会检测到触摸操作,并将触摸事件的相关信息(如触摸的坐标、触摸的时间等)传递给 Android 系统的 InputManagerService。 1.2 Activity 接收事件 Inp…...
多数元素题解(LC:169)
169. 多数元素 核心思想(Boyer-Moore 投票算法): 解题思路:可以使用 Boyer-Moore 投票算法、该算法的核心思想是: 维护一个候选元素和计数器、初始时计数器为 0。 遍历数组: 当计数器为 0 时、设置当前元…...
C# 在VS2022中开发常用设置
一、基础环境配置 1. 安装必要组件 在 VS2022 安装时确保勾选以下工作负载: 使用 .NET 的桌面开发(包含 WPF/WinForms)ASP.NET 和 Web 开发.NET 跨平台开发Azure 开发数据存储和处理 2. 主题与外…...
三个概念:DataBinding,Dependency Property 与DataTemplate
WPF 核心概念详解:DataBinding、Dependency Property 和 DataTemplate 1. DataBinding (数据绑定) 基本概念 DataBinding 是 WPF 的核心机制,用于在 UI 元素和数据源之间建立自动同步关系。 关键特性 双向绑定:数据变化自动反映到 UI&…...
基于C#开发的适合Windows开源文件管理器
使用DDD从零构建一个完整的系统 推荐一个功能强大且直观的开源文件管理器,适用于Windows平台。 01 项目简介 该项目是一个基于C#开发、开源的文件管理器,适用于Windows,界面UI美观、方便轻松浏览文件。此外,支持创建和提取压缩…...
nacos和redis本地启动
1. 下载Nacos 首先,你需要从Nacos的官方GitHub仓库下载最新版本的Nacos服务器。你可以访问Nacos GitHub页面来下载。 2. 解压下载的文件 下载完成后,解压你下载的Nacos包到一个目录中。例如,你可以将其解压到~/nacos/。 3. 启动Nacos服务…...
时态--00--总述
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 时态句子结构时态标志词 时态 句子结构 时态标志词...
PH热榜 | 2025-04-30
1. Daytona 标语:安全且灵活的基础设施,用于运行你的人工智能生成的代码。 介绍:Daytona Cloud 为 AI 智能体重塑了基础设施,具备不到 90 毫秒的启动时间、原生性能以及有状态执行的能力,这些是传统云计算所无法实现…...
.NET Core 数据库ORM框架用法简述
.NET Core ORM框架用法简述 一、主流.NET Core ORM框架概述 在.NET Core生态系统中,主流的ORM(Object-Relational Mapping)框架包括: Entity Framework Core (EF Core) - 微软官方推出的ORM框架Dapper - 轻量级微ORMNpgsql.Entit…...
在Windows系统上如何用Manifest管理嵌入式项目
相信很多Android开发出身的工程师对于manifest、repo和gerrit会有一定的好感,即使转行做了其他的行业,也希望可以延续Android的代码管理风格。这里记录了一个在汽车电子行业使用GerritrepoManifest来管理嵌入式项目的方法,希望对读者有帮助。…...
Qt -DFS可视化
博客主页:【夜泉_ly】 本文专栏:【暂无】 欢迎点赞👍收藏⭐关注❤️ 目录 前言关于如何sleep实现思路Pixmapspixmaps.hpixmaps.cpp MapSquaremapsquare.hmapsquare.cpp dfsthreaddfsthread.hdfsthread.cpprun dfs其他 WidgetUnit其他 Qt -DFS…...
H.264添加 SEI 信息技术文档
概述 本文档描述如何在 H.264 视频流中动态插入自定义 SEI信息。SEI 是 H.264/AVC 标准中定义的一种元数据格式,可用于携带时间戳、版权信息、场景标记等附加数据。本方案基于 FFmpeg 的 AVPacket 结构和标准 H.264 NAL 单元格式实现,支持与视频帧的精确…...
ICMP协议
ICMP协议 一、ICMP基本概念 1、ICMP协议 Internet控制报文协议,用于在IP主机、路由器之间传递控制消息,控制消息指网络通不通、主机是否可达、路由是否可用等等ICMP是属于网络层的协议,封装在传输层与网络层之间 2、ICMP报文格式 类型 (t…...
react中封装一个预览.doc和.docx文件的组件
主要用到了mammoth这个插件,mammoth.js是一个JavaScript库,主要用于将Microsoft Word文档(.docx格式)转换为HTML。它可以通过Node.js环境使用,也可以直接在浏览器中使用。 关键代码: import mammoth from mammoth; import { u…...
驾驭音质,尽享四通道力量——AXPA17851
AXPA17851: 4x48W 车用AB类四通道桥式输出音频功率放大器 AXPA17851是采用BCD(双极型,CMOS,DMOS)工艺技术设计的四通道桥式输出AB类车用音频功率放大器,采用完全互补的P型/ N型输出结构, 具有轨到轨的输出电压摆幅,高输…...
人格伤疤测试:发现内心深处的情感创伤
人格伤疤测试:发现内心深处的情感创伤 工具介绍 我们开发了一个专业的人格伤疤测试工具,帮助您发现和了解内心深处的情感创伤。这个在线测评从十个关键维度全面评估您的心理状态: 核心维度 情感创伤: 评估童年经历对当前情绪的影响自我认…...
CANopen协议简单介绍和使用
文章目录 一、CAN总线介绍二、CAN总线的帧类型三、CAN总线的特性四、Linux中的CAN帧驱动结构体五、CAN总线升级版本-CANFD六、更高层封装的协议-应用层封装的CANopen协议总结 一、CAN总线介绍 CAN总线(Controller Area Network) 是一种串行通信协议&…...
数据隐私在Web3环境下的重要性及实现方法
在这个信息爆炸的时代,我们正站在 Web3 的门槛上,迎接着一个全新的网络架构和用户交互方式。Web3 不仅仅是技术的迭代,它还代表了一种全新的网络架构和用户交互方式。在 Web3 环境下,数据隐私成为了一个至关重要的话题。本文将探讨…...
【每日八股】复习 Redis Day4:线程模型
文章目录 复习 Redis Day4:线程模型介绍一下 Redis 的线程模型核心线程模型(Redis 6.0 之前)Redis 6.0 的多线程改进Redis 真的是单线程吗?Redis 的线程模型剖析 上一篇 Redis 的应用我今天才完成,因此明天一并复习 Re…...
手动创建一份konga对应helm的chart项目
rootiZj6c72dzbei17o2cuksmeZ:~/yaml/konga# helm create konga-chart Creating konga-chart更改对应的文件 deployment.yaml rootiZj6c72dzbei17o2cuksmeZ:~/yaml/konga/konga-chart# cat templates/deployment.yaml apiVersion: apps/v1 kind: Deployment metadata:name: k…...
GD32F407单片机开发入门(十九)DMA详解及ADC-DMA方式采集含源码
文章目录 一.概要二.GD32F407VET6单片机DMA外设特点三.GD32单片机DMA内部结构图四.DMA各通道请求五.GD32F407VET6单片机ADC-DMA采集例程六.工程源代码下载七.小结 一.概要 基本概念: DMA是Direct Memory Access的首字母缩写,是一种完全由硬件执行数据交换的工作方式…...
AI HR新范式:易路iBuilder如何通过“技术隐身,价值凸显”,成为HR身份转型的好帮手
HR的身份危机与转型机遇 面对本轮AI引发的组织重构浪潮,HR在组织中的角色发生了哪些变化? 传统,HR负责构建公司“人员流程”的体系与专业服务,涵盖招聘、发展、薪酬、支持等职能。但在企业持续追求“生产力”的当下,…...
栈与队列 Part 7
队列的链式存储结构及实现 队列的链式存储结构,其实就是线性表的单链表,只不过它只能尾进头出而已,我们把它简称为链队列 为了操作上的方便,我们将队头指针指向链队列的头结点,而队尾指针指向终端结点,如图…...
pinia实现数据持久化插件pinia-plugin-persist-uni
在学习uniapp过程中,看到了pinia-plugin-persist-uni插件,以前面试过程中也有面试过说vuex数据刷新之前的数据就丢失了,之前回答的是把数据存储到数据库或者本地存储。pinia-plugin-persist-uni本质上数据也是本地存储。 1、安装 npm instal…...
32单片机——独立看门狗
1、IWDG的简介 IWDG:Independent watchdog,即独立看门狗 独立看门狗本质上是一个定时器,该定时器是一个12位的递减计数器,当计数器的值减到0的时候,就会产生一个复位信号 如果在计数没减到0之前,重置计数器…...
人工智能数学基础(五):概率论
概率论是人工智能中处理不确定性的核心工具,它为机器学习、数据科学和统计分析提供了理论基础。本文将深入浅出地介绍概率论的重要概念,并结合 Python 实例,帮助读者更好地理解和应用这些知识。资源绑定附上完整资源供读者参考学习࿰…...
Hbuilder 开发鸿蒙应用,打包成 hap 格式(并没有上架应用商店,只安装调试用)
效果 这个是打包后的 hap 文件,(并没有上架应用商店,只安装调试用) 拖到模拟器里,可以正常安装 这是鸿蒙的版本 前置 注册华为开发者账号 下载 DevEco-studio 软件 hbuilder 阿尔法版本 大致思路 然后注册…...
第一章 OpenCV篇-配置及基础知识-Python
目录 一.Python配置OpenCV 二.图像基本操作 1.数据读取-图像 2.数据读取-视频 三.ROI区域 1.任意提取区域 2.边界填充 四.数值计算 1.图像相加 2.图像融合 此章节主要讲解计算机视觉也就是OpenCV,这是我即将开启的篇章,其中这一章主要运用的语…...
NPTL原理分析
1. NPTL 简介 1.1. 定义与核心目的 原生 POSIX 线程库 (Native POSIX Thread Library, NPTL) 是 GNU C 库 (glibc) 中针对 Linux 操作系统的 POSIX Threads (pthreads) 标准规范的现代实现。其根本作用在于为 Linux 系统提供高效且符合标准的并发多线程编程能力。NPTL 并非一…...
先知AIGC超级工场,如何助力企业降本增效?
北京先智先行科技有限公司,作为行业内备受瞩目的企业,销售有“先知大模型”、“先行AI商学院”“先知AIGC超级工场”三个旗舰产品。其中,先知大模型私有化部署、先知AIGC超级工场、AI训练师、先知人力资源服务、先知产业联盟,构成…...
【数学建模国奖速成系列】优秀论文绘图复现代码(三)
文章目录 引言箱线图面积图面积图2热图矩阵散点图完整复现代码 引言 数模比赛的绘图是非常重要得,这篇文章给大家分享我自己复现国奖优秀论文的代码,基于Matalab来实现,可以直接运行出图。之前的文章也有分享【折线图】【柱状图】的绘制&…...
架构进阶:72页集管IT基础设施蓝图设计方案【附全文阅读】
该方案适用于集团企业的 IT 决策者、架构师、运维管理人员等。方案指出,企业在发展和市场机遇下面临信息化挑战,需加强统一建设。 其核心是打造以云平台为核心的统一敏捷应用平台。通过分析现状,明确能力需求,提出建设统一、安全、高效的 IaaS 和 PaaS 相结合的技术资源云目…...
从技术角度看Facebook的隐私保护机制
在数字化时代,隐私保护成为了公众关注的焦点。作为全球最大的社交网络平台之一,Facebook 在隐私保护方面采取了一系列技术措施。本文将从技术角度探讨 Facebook 的隐私保护机制,揭示它是如何在提供个性化服务的同时,确保用户隐私信…...
网络安全之浅析Java反序列化题目
前言 这段时间做了几道Java反序列化题目,发现很多题目都是类似的,并且可以通过一些非预期gadget打进去,就打算总结一下常见的题目类型以及各种解法,并提炼出一般性的思维方法。 正文 分析入口点 拿到题目,有附件最…...
make报错:Cannot open jobserver /tmp/GMfifo12676r: No such file or directory
报错描述 执行的命令 make -j16 报错显示:Cannot open jobserver /tmp/GMfifo12676r: No such file or directory 解决办法 make -j16 --jobserver-stylepipe 参考的 Re: Cannot open jobserver ... ## 祝你好运hope("大神多多指点") topic("有…...
企业的呼入语音智能体是什么样子?
当传统客服模式陷入瓶颈,一场沟通革命正在悄然发生——云蝠智能呼入语音智能体,正以AI技术为核心驱动力,为企业重塑服务生态。 深夜11点,客户突然来电咨询订单进度;节假日高峰,客服热线被挤爆却无人应答&am…...
Arduino程序结构详解与嵌入式开发对比指南
Arduino编程详解:从基础到进阶实践 一、Arduino程序的核心架构与扩展设计 1.1 程序框架的深度解析 Arduino程序的基石setup()和loop()函数构成了整个开发体系的核心逻辑。这两个函数的设计哲学体现了嵌入式系统开发的两个关键维度: 初始化阶段&#…...
华为云汪维敏:AI赋能应用现代化,加速金融生产力跃升
4月24日,在2025第四届中国国际软件发展大会的“应用现代化赋能数智金融新时代”论坛上,华为云PaaS服务产品部副部长、应用现代化产业联盟特邀顾问汪维敏先生发表“AI赋能应用现代化,加速金融生产力跃升”主题演讲,介绍了未来应用智…...
linux find命令妙用
对于需要查找一定时间的文件,可以使用find 命令处理 格式参考 find /path/to/search -type f -name "pattern" -mtime -2 -exec sh /path/to/XXX.sh {} /;更多细节讲解看这里find命令时间细讲 那么实际工作中使用的案例 核心命令 find /var/path/ -ty…...
利用v0与Cursor优化开发流程和效率
以下是 v0.dev 与 Cursor 的深度对比分析,基于最新功能(截至2025年4月)和实际开发场景: 一、核心定位对比 维度v0.devCursor本质定位AI驱动的前端设计工具AI增强的代码编辑器核心目标快速生成可交互的UI原型提升全栈开发效率&am…...
ReSearch: Learning to Reason with Search for LLMs via Reinforcement Learning
🧠 一、论文背景:为什么需要 ReSearch? 🌍 大语言模型(LLM)的问题: 尽管 GPT、Claude、Qwen 等 LLMs 在推理上取得了巨大进展,但它们仍面临几个关键挑战: 信息孤岛&am…...
瑞芯微芯片算法开发初步实践
文章目录 一、算法开发的一般步骤1.选择合适的深度学习框架2.对于要处理的问题进行分类,是回归问题还是分类问题。3.对数据进行归纳和整理4.对输入的数据进行归一化和量化,保证模型运行的效率和提高模型运行的准确度5.在嵌入式处理器上面运行模型&#x…...
大连理工大学选修课——机器学习笔记(1):概述
机器学习概述 机器学习的本质 机器学习是为了设计解决问题的算法。 为输入与输出建立某种映射: 类似于函数关系: Y f ( X ) Yf(X) Yf(X) 不同的映射方法体现了不同的思想。 相关概念 深度学习是机器学习的一个分支 深度学习是深层次化的神经网…...
(4)python中jupyter lab使用python虚拟环境
1. 先了解IPython和IPyKernel简介 IPython 是一个功能强大的交互式 Python 解释器和开发环境。它提供了一种增强的 Python Shell,使得用户能够以交互的方式探索、分析和可视化数据。IPython 的名称来源于 "Interactive Python",体现了其交互式的特性。 IPyKernel 是…...