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++)); do
echo ------------------- 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数据同步备份工具 就结束了!!!🎉🎉🎉
欢迎小伙伴们学习和指正!!!😊😊😊
祝大家学习和工作一切顺利!!!😎😎😎