37、Linux中Xsync数据同步备份工具

37、Linux中Xsync数据同步备份工具

  • 一、介绍
  • 二、配置集群hostname
  • 三、修改xsync文件
  • 四、赋权
  • 五、安装Rsync
  • 六、验证一
  • 七、配置免密登录
    • 1、生成rsa密钥
    • 2、copy机器自身公钥到目标机器
    • 3、.ssh/文件目录赋权
  • 八、验证二

⚠️ 注:本文全程在普通用户下操作,非root账户。个别命令前需要添加sudo

一、介绍

Xsync: 基于 Rsync 工具编写的 Linux shell 脚本。用于简化在 集群环境中同步文件 的操作。该脚本封装了 Rsync 命令行参数,可以 将本地文件或目录同步到多台远程主机上 。尤其在Hadoop或其他分布式集群管理中非常有用。它能自动遍历集群中的各个节点并执行同步任务。

     简而言之,在集群机器配置时,经常 需要将一个文件或目录copy到同样的多台集群上。 一个一个机器去复制,比较麻烦。如果有一个办法,通过一条命令就可以实现这个目的,就简单多了。xsync就是这样一个同步脚本。 Xsync 其实是对 Rsync 脚本的二次封装,脚本内容可以根据自己需要进行修改。

二、配置集群hostname

# 命令
sudo vim /etc/hosts

添加如下内容(ip和主机名根据实际情况修改):

# ip和主机名
192.168.250.130 ulanhada130
192.168.250.131 ulanhada131
192.168.250.132 ulanhada132

在这里插入图片描述

三、修改xsync文件

修改 /usr/local/bin/ 下的 xsync 文件,如果没有就新建。

# 新建xsync文件
touch xsync

xsync 文件中,添加如下内容:

#!/bin/bash
#1 获取输入参数个数,如果没有参数,直接退出
pcount=$#
if((pcount==0)); then
echo no args;
exit;
fi#2 获取文件名称
p1=$1
fname=`basename $p1`
echo fname=$fname#3 获取上级目录到绝对路径
pdir=`cd -P $(dirname $p1); pwd`
echo pdir=$pdir#4 获取当前用户名称
user=`whoami`#5 循环
for((host=130;host<133;host++)); doecho ------------------- ulanhada$host --------------rsync -rvl $pdir/$fname $user@ulanhada$host:$pdir
done

其中的 ulanhada 是我起的名字,与 hosts 中配置的 ulanhada 一样,可自定义,但两者必须匹配,大家根据实际情况修改~

四、赋权

chmod 777 xsync

五、安装Rsync

需要给每台远程目标服务器下载 rsync,包括本机。如果都已安装,则跳过该步骤~

sudo yum -y install rsync

在这里插入图片描述

六、验证一

使用 xsync +需要分发的文件名(文件夹也可以) 进行分发

# 语法:xsync [文件名/文件夹名]
xsync a.txt

在这里插入图片描述
由上图可见,需要 输入各个服务器的密码
如果打算省略输入密码的步骤,请看 步骤七
如果需要输入密码,则跳过步骤七。

七、配置免密登录

1、生成rsa密钥

使用命令 ssh-keygen 生成 rsa密钥。配置信息直接回车即可, 生成的密钥默认在当前用户主目录的 .ssh 目录下。
📣密钥文件有两个:
id_rsa: 存放着私钥
id_rsa.pub: 存放着公钥

ssh-keygen

在这里插入图片描述
在这里插入图片描述

2、copy机器自身公钥到目标机器

在各个远程目标机器的用户主目录创建 .ssh 目录

mkdir -p ~/.ssh

在本地执行远程拷贝命令

cd /home/ulanhada/.ssh
#  语法:scp [本地文件的绝对路径] [服务器用户名]@[主机名/主机IP]:[远程文件的绝对路径]
scp id_rsa.pub ulanhada@ulanhada130:/home/ulanhada/.ssh/authorized_keys
scp id_rsa.pub ulanhada@ulanhada131:/home/ulanhada/.ssh/authorized_keys
scp id_rsa.pub ulanhada@ulanhada132:/home/ulanhada/.ssh/authorized_keys

在这里插入图片描述
📣拓展:
递归复制整个目录

# 语法:scp -r [本地文件夹的绝对路径] [服务器用户名]@[主机名/主机IP]:[远程文件夹的绝对路径]

3、.ssh/文件目录赋权

在各个目标服务器分别给 .ssh 文件夹赋权限

chmod 700 .ssh/

八、验证二

xsync d.txt

在这里插入图片描述
上图所示,发现不再需要输入密码。则无密码传输配置成功~


到这里 Linux中Xsync数据同步备份工具 就结束了!!!🎉🎉🎉
欢迎小伙伴们学习和指正!!!😊😊😊
祝大家学习和工作一切顺利!!!😎😎😎

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

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

相关文章

Null-text Inversion for Editing Real Images using Guided Diffusion Models

Null-text Inversion for Editing Real Images using Guided Diffusion Models (Paper reading) Ron Mokady, Google Research, CVPR23, Paper, Code 1. 前言 在本文中&#xff0c;我们介绍了一种精确的反转技术&#xff0c;从而有助于直观地对图像进行基于文本的修改。我们提…

鸿蒙开发之ArkUI组件常用组件文本输入

TextInput、TextArea是输入框组件&#xff0c;通常用于响应用户的输入操作&#xff0c;比如评论区的输入、聊天框的输入、表格的输入等&#xff0c;也可以结合其它组件构建功能页面&#xff0c;例如登录注册页面。 TextInput为单行输入框、TextArea为多行输入框 TextArea 多行…

Oracle数据库管理:从基础到高级应用【文末送书-45】

文章目录 入门篇&#xff1a;初识Oracle进阶篇&#xff1a;深入学习Oracle精通篇&#xff1a;掌握Oracle高级技术Oracle从入门到精通&#xff08;第5版&#xff09;&#xff08;软件开发视频大讲堂&#xff09;【文末送书-45】 在当今数字化时代&#xff0c;数据是企业成功的关…

django orm DateTimeField 6位小数精度问题

from django.db.backends.mysql.base import DatabaseWrapperDatabaseWrapper.data_types[DateTimeField] "datetime"意思就是重写源码里面的DateTimeField字段

xxl-job 适配人大金仓数据库 V8R6

前言 由于一些众所周知的原因&#xff0c;项目需要需要进行改造使其适配人大金仓的数据库。 xxl-job适配人大金仓 特此说明&#xff1a; 当前修改的xxl-job版本 为 2.4.1-SNAPSHOT mysql上的xxl-job库 迁移到 人大金仓数据库上pom中新增依赖 kingbase8 驱动 注意版本<!-…

充钱也不能任性,今天用百度AI又骂街了

今天在用文心一言的时候又翻车了&#xff0c;应该是又骂街了。 cao&#xff0c;充钱也不能任性啊&#xff0c;不能手贱去看百度的新功能&#xff0c;垃圾的一批。 本来付费用了用4.0&#xff0c;感觉Chat功能还是可以的&#xff0c;不论是简单的代码&#xff0c;还是一些通用的…

性价比高一点的diy台式主机怎么搭配?

怎么搭配一台性价比高一点的台式机 建议&#xff1a; 选择合适的CPU和GPU。根据实际需求选择相对较新的CPU和GPU型号&#xff0c;以确保能够运行目标应用程序和游戏。 合理选择内存和存储。根据预算选择适当的内存和存储容量。8GB或16GB内存对于一般计算和游戏使用足够了&…

由浅到深认识Java语言(31):阶段性练习

该文章Github地址&#xff1a;https://github.com/AntonyCheng/java-notes 在此介绍一下作者开源的SpringBoot项目初始化模板&#xff08;Github仓库地址&#xff1a;https://github.com/AntonyCheng/spring-boot-init-template & CSDN文章地址&#xff1a;https://blog.c…

市场复盘总结 20240327

仅用于记录当天的市场情况&#xff0c;用于统计交易策略的适用情况&#xff0c;以便程序回测 短线核心&#xff1a;不参与任何级别的调整&#xff0c;采用龙空龙模式 一支股票 10%的时候可以操作&#xff0c; 90%的时间适合空仓等待 二进三&#xff1a; 进级率中 14% 最常用…

Mysql数据库命令大全

目录 mysql服务器处理客户端请求 Mysql数据库常用命令 三种删除方式&#xff1a; mysql服务器处理客户端请求 首先MySQL是典型的c/s架构&#xff0c;即client/Server架构&#xff0c;不论客户端进程和服务器进程是采用哪种方式进行通信&#xff0c;最后实现的效果都是&…

Qt C++ | QTimer经验总结

QTimer Class QTimer类提供重复计时器和单次计时器 头文件: #include <QTimer> qmake: QT += core 继承自: QObject 定时器信号 void timeout() 公共函数 Qt::TimerType 枚举定义了 Qt 中不同类型的定时器。它包含以下值: **Qt::PreciseTimer:**高精度定时器,用…

netty构建udp服务器以及发送报文到客户端客户端详细案例

目录 一、基于netty创建udp服务端以及对应通道设置关键 二、发送数据 三、netty中的ChannelOption常用参数说明 1、ChannelOption.SO_BACKLOG 2、ChannelOption.SO_REUSEADDR 3、ChannelOption.SO_KEEPALIVE 4、ChannelOption.SO_SNDBUF和ChannelOption.SO_RCVBUF 5、Ch…