linux 如何给服务器批量做免密,如何批量挂在磁盘

前提条件

所有机器网络互通,且已做了免密登录

linux服务器批量做免密脚本如下

#!/bin/bash

# 定义服务器列表文件
SERVERS_FILE="host"

# 定义生成的密钥的存储目录
KEY_DIR="/root/.ssh"

# 检查是否输入了文件路径
if [ $# -ne 1 ]; then
    echo "使用方法: $0 <服务器列表文件>"
    exit 1
fi

# 检查服务器列表文件是否存在
if [ ! -f $1 ]; then
    echo "错误: $1 文件不存在"
    exit 1
fi

# 主循环
while read server; do
    ip=$(echo$server | awk '{print $1}')
    user=$(echo$server | awk '{print $2}')
    port=$(echo$server | awk '{print $3}')

    # 检查IP地址是否合法
    if [[ ! $ip =~ ^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
        echo "错误: $ip 不是一个合法的IP地址"
        continue
    fi

    # 检查端口是否合法
    if [[ ! $port =~ ^[0-9]+$ ]]; then
        echo "错误: $port 不是一个合法的端口"
        continue
    fi

    # 为当前服务器生成密钥
    echo "正在为$ip生成SSH密钥..."
    ssh-keygen -t rsa -b 4096 -C "your_email@example.com" -f $KEY_DIR/id_rsa_$ip -N "" &> /dev/null

    # 检查是否生成成功
    if [ $? -ne 0 ]; then
        echo "错误: 密钥生成失败"
        exit 1
    fi

    # 将公钥复制到其他服务器
    for other_server in $(cat$SERVERS_FILE); do
        other_ip=$(echo$other_server | awk '{print $1}')
        other_user=$(echo$other_server | awk '{print $2}')
        other_port=$(echo$other_server | awk '{print $3}')

        # 跳过当前服务器
        if [ $ip ==$other_ip ]; then
            continue
        fi

        echo "正在将公钥复制到$other_ip..."
        ssh -p $other_port$other_user@$other_ip "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys" <$KEY_DIR/id_rsa_$ip.pub &> /dev/null

        # 检查是否复制成功
        if [ $? -ne 0 ]; then
            echo "错误: 无法向$other_ip复制公钥"
        else
            echo "成功: 向$other_ip复制公钥"
        fi
    done
done < $1

echo "完成!所有机器已经设置互相免密登录。"

1、将脚本保存为setup_ssh_keys_ mutual.sh。
2、给脚本执行权限:chmod +x setup_ssh_keys_ mutual.sh。
3、执行脚本,传入服务器列表文件路径:./setup_ssh_keys_ mutual.sh host。

方案:
第一步、找到所要挂在的主机列表,写到某个文件中,我这写到我自己创建的host文件了
第二步、明确挂在磁盘虚要哪些命令

1、创建磁盘挂载目录

2、创建文件系统

3、将磁盘挂载到指定目录

4、将挂载的磁盘写到开机自启文件

第三步、明确命令后,开始编写脚本

linux服务器批量挂载磁盘,首先需要遍历需要挂载磁盘的主机。我这里用的是for循环

创建脚本文件

#!/bin/bash

for i in `cat host`;do ' ssh $i;  mkdir /data; mkfs.ext4 /dev/vdb;mount /dev/vdb /data;echo "/dev/vdb /data  ext4  defaults 1 1">>/etc/fstab';done

注意点,命令与命令之间用‘ ;’隔开, 且命令需用单引号引起来,表示我们执行的是可执行命令

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

车载电子电器架构 —— 基础技术开发概述

车载电子电器架构 —— 基础技术开发概述 我是穿拖鞋的汉子&#xff0c;魔都中坚持长期主义的汽车电子工程师。 老规矩&#xff0c;分享一段喜欢的文字&#xff0c;避免自己成为高知识低文化的工程师&#xff1a; 屏蔽力是信息过载时代一个人的特殊竞争力&#xff0c;任何消耗…

.Net Core与存储过程(一)

例子1 C# 调用存储过程 CREATE PROCEDURE [dbo].[spFunc] id BIGINT, isTrue BIT, str NVARCHAR (60), strZh NVARCHAR (60) AS BEGINSELECT *FROM tableAWHERE id idAND isTrue isTrueAND str strAND strZh strZh; ENDlong idLong 18; bool isBoolean true; string …

【element-ui】el-select multiple多选,表单校验问题解决方法

在项目开发过程中发现&#xff0c;el-select设置了multiple支持多选属性之后&#xff0c;el-select赋值之后&#xff0c;表单校验不通过 解决思路及解决方法&#xff1a; 1、首先看看v-model 、prop属性、rules校验是否正确&#xff0c;这里注意el-select的rules校验的trigger…

代码随想录三刷day17

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、力扣144. 二叉树的前序遍历二、力扣145. 二叉树的后序遍历三、力扣94. 二叉树的中序遍历四、力扣144. 二叉树的前序遍历无、力扣145. 二叉树的后序遍历六、…

【Go语言】Go语言中的指针

Go语言中的指针 变量的本质是对一块内存空间的命名&#xff0c;我们可以通过引用变量名来使用这块内存空间存储的值&#xff0c;而指针则是用来指向这些变量值所在内存地址的值。 注&#xff1a;变量值所在内存地址的值不等于该内存地址存储的变量值。 Go语言中&#xff0c;…

42.do...while语句

目录 一.什么是do...while语句 二.语法 三.执行流程图 四.举例 五.视频教程 一.什么是do...while语句 do...while语句也是循环语句&#xff0c;和while语句的区别是&#xff0c;while语句是先判断表达式&#xff0c;如果表达式成立才会执行循环体中的内容&#xff0c;否则…

新书速览|Python数据分析快速上手

从零开始&#xff0c;小白轻松入手&#xff0c;一步一步教你学数据分析&#xff0c;让数据分析变得简单易懂 本书内容 《Python数据分析快速上手》通过通俗易懂的语言、丰富多彩的实例&#xff0c;详细介绍了使用Python进行数据分析应该掌握的各方面技术。本书内容包括Python基…

LeetCode215: 数组中的第K个最大元素

题目描述 给定整数数组 nums 和整数 k&#xff0c;请返回数组中第 k 个最大的元素。 请注意&#xff0c;你需要找的是数组排序后的第 k 个最大的元素&#xff0c;而不是第 k 个不同的元素。 你必须设计并实现时间复杂度为 O(n) 的算法解决此问题。 示例 1: 输入: [3,2,1,5,6,4…

区块链游戏解说:什么是 Arcade Champion

作者&#xff1a;lesleyfootprint.network 编译&#xff1a;cicifootprint.network 数据源&#xff1a;Arcade Champion Dashboard 什么是 Arcade Champion Arcade Champion 代表了移动游戏世界的重大革新。它将经典街机游戏的怀旧与创新元素结合在一起&#xff0c;包括 NF…

自学Python笔记总结(2——了解)

网络了解 网络调试助手 NetAssist.exe NetAssist.exe 使用方法请自行寻找 UDP协议 &#xff08;只能一来一回的的发消息&#xff0c;不可连续发送&#xff09; UDP 是User Datagram Protocol的简称&#xff0c; 中文名是用户数据报协议。在通信开始之前&#xff0c;不需要建…

计算机网络体系结构

本篇博客是基于谢希仁编写的《计算机网络》和王道考研视频总结出来的知识点&#xff0c;本篇总结的主要知识点是第一章的计算机网络概述。 计算机网络概述 整体介绍 概念 计算机网络&#xff1a;是一个将分散的。具有独立功能的计算机系统&#xff0c;通过通信设备和线路连…

Android13 framework添加关机接口

framework层修改&#xff1a; t0_sys/frameworks/base/core/api/current.txt method RequiresPermission(android.Manifest.permission.REBOOT) public void reboot(Nullable String);method public void rebootp();t0_sys/frameworks/base/core/java/android/os/IPowerManager…

Zookeeper基础入门-1【集群搭建】

Zookeeper基础入门-1【集群搭建】 一、Zookeeper 入门1.1.概述1.2.Zookeeper工作机制1.3.Zookeeper特点1.4.数据结构1.5.应用场景1.5.1.统一命名服务1.5.2.统一配置管理1.5.3.统一集群管理1.5.4.服务器动态上下线1.5.5.软负载均衡 1.6.Zookeeper官网1.6.1.Zookeeper下载1.6.2.历…

day01-HTML-CSS

一、Web 开发 1. 什么是 Web &#xff1f; Web&#xff1a;全球广域网&#xff0c;也称为万维网(www&#xff0c;World Wide Web)&#xff0c;能够通过浏览器访问的 网站。 2. Web 网站的开发模式 3. Web 标准 Web 标准也称为网页标准&#xff0c;由一系列的标准组成&#xff…

ubuntu开发板问题汇总

1 上网 网线一端连接到开发板 一端连接到无线路由网口 发现局域网可以相互ping通&#xff0c;但是ping www.baidu.com不通&#xff0c;提示消息 ping: bad address www.baidu.com 需要下面命令配置网关 route add default gw 192.168.31.1 然后再ping www,baidu.com即…

yii2框架 mysql两个点的经纬度计算距离排序查询

$query Location::find()->select([id, name])->addSelect([ distance > "ST_DISTANCE(POINT(:latitude, :longitude), POINT(latitude, longitude))", ])->orderBy(distance)->params([ :latitude > $targetLatitude, // 目标纬度 :…

REVERSE-COMPETITION-VNCTF-2024

REVERSE-COMPETITION-VNCTF-2024 前言TBXObaby_c2yunobfuseko 前言 ko的随机数算法没看出来&#xff0c;可惜~ 这里给自己打个广告&#xff1a;东南网安研二在读&#xff0c;求实习&#xff0c;求内推&#xff0c;求老板们多看看我QAQ TBXO 通过字符串定位到main函数汇编视…

【Algorithms 4】算法(第4版)学习笔记 13 - 番外篇:二叉查找树的几何应用(下篇)

文章目录 前言参考目录学习笔记4&#xff1a;区间搜索树&#xff08;interval search trees&#xff09;4.1&#xff1a;一维区间搜索4.2&#xff1a;区间搜索树定义4.3&#xff1a;区间搜索树 demo 演示4.3.1&#xff1a;插入4.3.2&#xff1a;搜索命中4.3.3&#xff1a;搜索未…

SpringBoot - 后端数据返回前端各个数据类型全局格式化

全局配置 import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.SerializationFeature; import com.fasterxml.jackson.databind.module.SimpleModule; import com.fasterxml.j…

[RCTF2015]EasySQL1 题目分析与详解

一、题目介绍&#xff1a; 1、题目来源&#xff1a; BUUCTF网址 2、题目介绍&#xff1a; 拿到flag。 二、解题思路&#xff1a; 我们发现题目首页有登录和注册账号两个选项&#xff0c;我们首先尝试注册账号&#xff0c;尝试注册username为admin的账号&#xff0c;输入密码…