当前位置: 首页 > news >正文

编写xsync集群分发脚本(保姆级别)

需求:循环复制文件到所有节点的相同目录下

1.需要系统安装xsync

sudo yum install rsync

2.创建目录

mkdir -p /home/bin
cd /home/bin

创建xsync文件

vim xsync

这块vim不懂的,可以看这篇文章:最实用的Vi/Vim指令汇总(上手超快!!!)_终端编辑代码命令 vim hcb.conf-CSDN博客

粘贴脚本,下面的主机名改成你自己的地址,有几台就填几台的地址

复制完检查一下,看开头是否是对的~

#!/bin/bash
#1 获取输入参数个数,如果没有参数,直接退出
pcount=$#
if [ $pcount -lt 1 ]
thenecho Not Enough Arguement!exit;
fi#2. 遍历集群所有机器
# 也可以采用:
# for host in hadoop{102..104};
# 这块的地址需要改成你自己的,不要照搬,会连不上的
for host in 121.41.78.73 121.40.103.110 121.41.76.158
doecho ====================    $host    ====================#3. 遍历所有目录,挨个发送for file in $@do#4 判断文件是否存在if [ -e $file ]then#5. 获取父目录pdir=$(cd -P $(dirname $file); pwd)echo pdir=$pdir#6. 获取当前文件的名称fname=$(basename $file)echo fname=$fname#7. 通过ssh执行命令:在$host主机上递归创建文件夹(如果存在该文件夹)ssh $host "mkdir -p $pdir"#8. 远程同步文件至$host主机的$USER用户的$pdir文件夹下rsync -av $pdir/$fname $USER@$host:$pdirelseecho $file does not exists!fidone
done

3.添加权限

想详细了解Linux权限的小伙伴可以看这篇文章:Linux的访问权限(保姆级别)-CSDN博客

chmod 777 xsync

4.执行

./xsync /home/bin

每一台机器都会要输入两次密码

第二个已经成功复制啦~

第三个已经复制成功啦~

后面两个都是选配,看自己需求~

5.配置到环境变量中

由于我们每次都只能手动的找到放xsync的目录。然后开始复制,效率并不高,所以我们把它放到全局,都可以使用

echo $PATH

直接移到/bin的目录下

sudo cp /home/xsync /bin/

此时可以全局使用这个命令了,就不需要像上面的./xsync了~

xsync 想要复制的文件   

6.配置Linux集群ssh无密登录

1) 生成公钥和私钥

cd
ls -al

cd .ssh/

ssh-keygen -t rsa

然后连敲三次回车,就会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥)

2) 将公钥拷贝到免密登录的目标机器上

要免密几台,就要给那几台机器都要发送,自己的上面要发是因为本身自己登录的时候也需要密码

ssh-copy-id 地址/主机名

此时A可以免密登录自己,服务器B,服务器C了,如果想要服务器B可以免密登录登录服务器A和服务器C,那么重复上面A的步骤,C也如此

现在分发就不需要密码了~

完美撒花~

http://www.dtcms.com/a/313397.html

相关文章:

  • Redis 数据同步机制
  • 【Linux】Makefile Cmake—基操
  • [特殊字符]字节Get!免费进楼攻略速存[特殊字符]
  • LWIP从FreeRTOS到uC/OS-III的适配性改动
  • linux 扩展未分配的磁盘空间到home下
  • SQL157 更新记录(一)
  • 代码随想录算法训练营第五十八天|动态规划part8
  • 成功解决ImportError: DLL load failed while importing _multiarray_umath: 找不到指定的模块。
  • 深度学习中的模型知识蒸馏
  • 深度学习中卷积与互相关
  • 记录使用ruoyi-flowable开发部署中出现的问题以及解决方法
  • FastAPI-Vue3-Admin 一款Python 全栈融合的高可用中后台快速开发平台方案
  • golang 函数选项模式
  • 数据结构(概念及链表)
  • 【数据结构】队列的顺序存储与链式存储(C语言版)
  • 基于深度学习的医学图像分析:使用变分自编码器(VAE)实现医学图像生成
  • (FD Conv)Frequency Dynamic Convolution for Dense Image Prediction论文精读(逐段解析)
  • 07.config 命令实现动态修改配置和慢查询
  • [硬件电路-138]:模拟电路 - 什么是正电源?什么是负电源?集成运放为什么有VCC+和VCC-
  • Unix 发展史概览
  • 探索 Zephyr 项目:高效、可扩展的实时操作系统
  • 源代码本地安装funasr
  • C语言数据结构(6)贪吃蛇项目1.贪吃蛇项目介绍
  • 有限元方法中的数值技术:三角矩阵求解
  • Vulnhub Corrosion2靶机复现
  • 机器人抓取流程介绍与实现——机器人抓取系统基础系列(七)
  • 腾讯云CentOS7镜像配置指南
  • Pytorch实现一个简单的贝叶斯卷积神经网络模型
  • Java 中也存在类似的“直接引用”“浅拷贝”和“深拷贝”
  • [创业之路-530]:创业公司五维架构设计:借鉴国家治理智慧,打造敏捷型组织生态