Shell判断:模式匹配:case(二)
简单的JumpServer
1、需求:工作中,我们需要管理N多个服务器。那么访问服务器就是一件繁琐的事情。通过shell编程,编写跳板程序。当我们需要访问服务器时,看一眼服务器列表名,按一下数字,就登录成功了。
2、分析:
- 运行跳板脚本。弹出数十台服务器名的菜单
- 1)web1
- 2)web2
- 3)web3
- ...........
- q)quit
- 用户请选择要连接的主机[1-3]:1
- Last login: Tue Nov 21 22:23:09 2023 from 192.168.151.1 #成功登陆
[root@localhost ~]# vim jump.sh #脚本编写
#!/bin/bash
#定义目标主机ip
web1=192.168.151.151
web2=192.158.151.152
web3=192.168.151.153#打印菜单
cat <<EOF
目标服务器列表:
1.web1
2.web2
3.web3
4.web4
5.mysql1
6.mysql2
7.docker1
q.quit
EOF#读取用户输入
read -p "请输入管理服务器序号:" num#判断用户选择
case $num in
1)
ssh root@$web1
;;
2)
ssh root@$web2
;;
3)
ssh root@$web3
;;
q)
echo "谢谢,再见"
;;
esac[root@localhost ~]# chmod +x jump.sh #脚本授权[root@localhost ~]# ./jump.sh #执行脚本
目标服务器列表:
1.web1
2.web2
3.web3
4.web4
5.mysql1
6.mysql2
7.docker1
q.quit
请输入管理服务器序号:1
The authenticity of host '192.168.151.151 (192.168.151.151)' can't be established.
ECDSA key fingerprint is SHA256:1v+zhimsbT04H97F0PMoe28USxNkJac201tQ233d9pE.
ECDSA key fingerprint is MD5:a1:d0:5a:af:0f:5d:0a:f7:68:b0:9d:13:ed:43:51:ff.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.151.151' (ECDSA) to the list of known hosts.
root@192.168.151.151's password:
Last login: Tue Nov 21 22:23:09 2023 from 192.168.151.1
mount: /dev/sr0 写保护,将以只读方式挂载
mount: /dev/sr0 已经挂载或 /mnt/cdrom 忙/dev/sr0 已经挂载到 /mnt/cdrom 上
[root@localhost ~]#
相关文章:
Shell判断:模式匹配:case(二)
简单的JumpServer 1、需求:工作中,我们需要管理N多个服务器。那么访问服务器就是一件繁琐的事情。通过shell编程,编写跳板程序。当我们需要访问服务器时,看一眼服务器列表名,按一下数字,就登录成功了。 2、…...
从android.graphics.Path中取出Point点,Kotlin
从android.graphics.Path中取出Point点,Kotlin /*** 从一条Path中获取多少个Point点*/private fun getPoints(path: Path, pointCount: Int): Array<FloatPoint?> {val points arrayOfNulls<FloatPoint>(pointCount)val pm PathMeasure(path, false)…...
力扣C++学习笔记——C++ 给vector去重
要使用std::set对std::vector进行去重操作,您可以将向量中的元素插入到集合中,因为std::set会自动去除重复元素。然后,您可以将集合中的元素重新存回向量中。以下是一个示例代码,演示如何使用std::set对std::vector进行去重&#…...
Flutter笔记:使用相机
Flutter笔记 使用相机 作者:李俊才 (jcLee95):https://blog.csdn.net/qq_28550263 邮箱 :291148484163.com 本文地址:https://blog.csdn.net/qq_28550263/article/details/134493373 【简介】本文介绍在 Fl…...
包装类型的缓存机制
Java 基本数据类型的包装类型的大部分都用到了缓存机制来提升性能。 Byte,Short,Integer,Long 这 4 种包装类默认创建了数值 [-128,127] 的相应类型的缓存数据,Character 创建了数值在 [0,127] 范围的缓存数据,Boolean 直接返回 True or Fal…...
【BUG】第一次创建vue3+vite项目启动报错Error: Cannot find module ‘worker_threads‘
问题描述 第一次创建vue3vite项目启动报错如下: Error: Cannot find module worker_threadsat Function.Module._resolveFilename (internal/modules/cjs/loader.js:636:15)at Function.Module._load (internal/modules/cjs/loader.js:562:25)at Module.require (…...
多目标应用:基于非支配排序的鲸鱼优化算法NSWOA求解微电网多目标优化调度(MATLAB代码)
一、微网系统运行优化模型 微电网优化模型介绍: 微电网多目标优化调度模型简介_IT猿手的博客-CSDN博客 二、基于非支配排序的鲸鱼优化算法NSWOA 基于非支配排序的鲸鱼优化算法NSWOA简介: 三、基于非支配排序的鲸鱼优化算法NSWOA求解微电网多目标优化…...
网络爬虫|Selenium——find_element_by_xpath()的几种方法
Xpath (XML Path Language),是W3C定义的用来在XML文档中选择节点的语言 一、从根目录/开始 有点像Linux的文件查看,/代表根目录,一级一级的查找,直接子节点,相当于css_selector中的>号 /html/body/div/p 二、根据…...
【Kingbase FlySync】命令模式:部署双轨并行,并实现切换同步
【Kingbase FlySync】命令模式:安装部署同步软件,实现Oracle到KES实现同步 双轨并行方案说明一.准备工作二.环境说明三.目标实操(1).准备安装环境Orcle服务器(Oracle40)1.上传所有工具包2.操作系统配置a.增加flysync 用户、设置密码b.配置环境变量c.调整limits.conf…...
echarts 多toolti同时触发图表实现
需求背景解决效果ISQQW代码地址energyChart.vue 需求背景 需要实现同x轴,4个图表的的多图表联动效果,且滑动会触发各个图表的tooltip,即一个图表拥有4个tooltip(目前echarts不支持,我这里绕过了这个问题) 解决效果 ISQQW代码地…...
2023.11.22使用flask做一个简单的图片浏览器
2023.11.22使用flask做一个简单的图片浏览器 功能: 实现图片浏览(翻页)功能 程序页面: 程序架构: 注意:在flask中常会使用src“{{ url_for(‘static’, filename‘images/’ image) }}”,…...
万字解析设计模式之桥接模式、外观模式
一、桥接模式 1.1概述 桥接模式是一种结构型设计模式,它的作用是将抽象部分和实现部分分离开来,使它们能够独立地变化。这样,抽象部分和实现部分可以分别进行扩展,而不会相互影响。它是用组合关系代替继承关系来实现,…...
常用系统函数
$clog2 clogb2 系统函数 $clog2 应返回参数以 2 为底的对数的上限(对数四舍五入为整数值)。参数可以是整数或任意大小的向量值。参数应被视为无符号值,参数值为 0 将产生结果 0。 该系统函数可用于计算对给定大小的存储器进行寻址所…...
键盘控制ROS车运动
键盘控制ROS车运动 上位机 使用pyseria库与stm32单片机进行通信控制 #!/usr/bin/env python # -*- coding: utf-8 -*import sys, select, termios, tty import serialmsg """ ---------------------------w a x ds w : x a : y s : -x …...
linux上交叉编译qt库
linux上交叉编译qt库 Qt程序从X86平台Linux移植到ARM平台Linux需要做什么 1.在ubuntu上使用qt的源码交叉编译出Qt库 2.将编译好的库拷贝到开发板上并设置相应的环境变量(库路径啥的) 前两步一劳永逸,做一次就行 3.X86上写好程序代码&…...
Nacos介绍与使用
Nacos介绍与使用 文章目录 Nacos介绍与使用一. 什么是Nacos1 Nacos功能1.1 配置中心1.2 注册中心 2.为什么要使用Nacos 二.Nacos 部署安装1. Nacos 部署方式2. Nacos 安装3. 配置数据源4. 开启控制台授权登录(可选) 三. Nacos配置中心的使用1. 创建配置信…...
网工内推 | 字节原厂,正式编,网络工程师,最高30K*15薪
01 字节跳动 招聘岗位:网络虚拟化高级研发工程师 职责描述: 1、负责字节跳动虚拟网络产品的研发,包括但不局限于网络VPC、NAT、LB负载均衡等; 2、负责字节跳动网络基础平台的研发,包括但不局限于网络控制面系统、容器…...
Git 远程仓库(Github)
目录 添加远程库 查看当前的远程库 提取远程仓库 推送到远程仓库 删除远程仓库 Git 并不像 SVN 那样有个中心服务器。 目前我们使用到的 Git 命令都是在本地执行,如果你想通过 Git 分享你的代码或者与其他开发人员合作。 你就需要将数据放到一台其他开发人员…...
Mybatis Plus分页实现逻辑整理(结合芋道整合进行解析)
Mybatis Plus分页实现逻辑整理(结合芋道整合进行解析) 我希望如春天般的你,身着白色的婚纱,向我奔赴而来,我愿意用全世界最温情的目光,朝着你的方向望去——姗姗来迟。 1.背景介绍 https://baomidou.com/p…...
C#编程题分享(2)
输出所有整数的和 让⽤户输⼊整数,如果⽤户输⼊的不是0,就继续输⼊,如果输⼊的是0,结束整数,并输出所有整数的和。 Console.WriteLine("请输⼊⼀个整数:"); int n; int sum 0; do {n Convert…...
ARM SIMDFP指令集:VMOV与VMMLA优化指南
1. ARM SIMD&FP指令集概述在现代处理器架构中,SIMD(单指令多数据)和FP(浮点)指令集是提升计算性能的关键技术。ARM架构从ARMv7开始引入NEON技术,到ARMv8进一步扩展为Advanced SIMD,为多媒体…...
CANN / ops-nn GELU算子
aclnnGelu 【免费下载链接】ops-nn 本项目是CANN提供的神经网络类计算算子库,实现网络在NPU上加速计算。 项目地址: https://gitcode.com/cann/ops-nn 📄 查看源码 产品支持情况 产品是否支持Ascend 950PR/Ascend 950DT√Atlas A3 训练系列产品…...
CANN/ops-cv仿真工具使用指南
简介 【免费下载链接】ops-cv 本项目是CANN提供的图像处理、目标检测相关的算子库,实现网络在NPU上加速计算。 项目地址: https://gitcode.com/cann/ops-cv CANN Simulator是一款面向算子开发场景的SoC级芯片仿真工具,用于分析运行在AI仿真器上的…...
如何5分钟搞定抖音无水印视频下载:douyin-downloader完整指南
如何5分钟搞定抖音无水印视频下载:douyin-downloader完整指南 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallbac…...
别再只会调库了!手把手教你用Verilog从零实现一个可配置的UART收发器(附完整代码)
从零构建可配置UART收发器的Verilog实战指南 在数字电路设计中,UART(通用异步收发器)作为最基础的串行通信协议之一,其重要性不言而喻。许多工程师虽然能够熟练调用现成的UART IP核,但对底层实现原理却知之甚少。本文将…...
Windows PDF处理革命:Poppler预编译包如何解决你的文档处理难题
Windows PDF处理革命:Poppler预编译包如何解决你的文档处理难题 【免费下载链接】poppler-windows Download Poppler binaries packaged for Windows with dependencies 项目地址: https://gitcode.com/gh_mirrors/po/poppler-windows 还在为Windows上复杂的…...
程序合成技术与LLM结合的实践与优化
1. 程序合成技术概述程序合成(Program Synthesis)作为形式化方法领域的重要分支,其核心目标是从高级规范自动生成满足特定要求的程序代码。这项技术起源于20世纪50年代Church提出的电路综合问题,经过数十年的发展已经形成了多种技…...
Qwen3-TTS在智能客服场景落地:快速搭建多语言语音应答系统
Qwen3-TTS在智能客服场景落地:快速搭建多语言语音应答系统 1. 智能客服语音交互的挑战与机遇 在全球化商业环境中,智能客服系统面临着多语言支持和实时交互的双重挑战。传统语音合成方案往往存在几个痛点: 语言切换困难:需要为…...
Naja框架实战:基于TypeScript的轻量级Web开发与REST API构建
1. 项目概述:一个轻量级、现代化的Web开发框架如果你最近在寻找一个能快速上手、性能出色且设计优雅的Web开发框架,那么najaeda/naja很可能已经进入了你的视野。这不是一个像Spring Boot或Django那样庞大的全栈框架,而是一个专注于现代JavaSc…...
运放有源滤波器实战:精准抑制EMI,提升信号完整性
1. 项目概述:当运算放大器遇上电磁干扰在电子设计的江湖里,电磁干扰(EMI)就像无处不在的“背景噪音”,它不请自来,总想在你精心设计的模拟或数字信号上留下点“印记”。无论是高精度的传感器前端࿰…...
