集群间文件的拷贝工具

背景

在配置zookeeper集群的过程中,通常需要把一份配置文件复制到其他几个机器上,显然很麻烦。为了方便,我们利用rsync工具来减少重复的工作。

zookeeper集群ip地址映射关系

10.45.48.166  kelly101
10.45.48.110 kelly102
10.45.48.221 kelly103
复制代码

把三台集群的ip地址和名称映射写入hosts文件

vim /etc/hosts
复制代码

rsync 远程同步工具

rsync远程同步工具,主要用于备份和镜像。具有速度快、避免复制相同内容和支持符号链接的优点,它只是拷贝文件不同的部分,因而减少了网络负担。

rsync       -rvl          $pdir/$fname               $user@hadoop$host:$pdir 
命令        选项参数      要拷贝的文件路径/名称          目的用户@主机:目的路径
复制代码

常用参数:

  • -r: –recursive 对子目录以递归模式处理

  • -R: –relative 使用相对路径信息

  • -l: –links 保留软链结

  • -v: –verbose 详细模式输出,传输过程可见

xsync同步脚本

在/usr/local/bin目录下创建xsync文件, 添加如下内容:

#!/bin/bash
# 获取输入参数个数,如果没有参数,直接退出
pcount=$#
if((pcount==0)); then
        echo no args...;
        exit;
fi

# 获取文件名称
p1=$1
fname=`basename $p1`
echo fname=$fname
# 获取上级目录到绝对路径
pdir=`cd -P $(dirname $p1); pwd`
echo pdir=$pdir
# 获取当前用户名称
user=`whoami`
# 循环
for((host=101; host<=103; host++)); do
        echo $pdir/$fname $user@kelly$host:$pdir
        echo ==================kelly$host==================
        rsync -rvl $pdir/$fname $user@kelly$host:$pdir
done
#Note:这里的kelly对应自己主机名,需要做相应修改。另外,for循环中的host的边界值由自己的#主机编号决定。
复制代码

调用脚本测试,就能将zoo.cfg文件分发到集群中的各个节点中。

xsync zoo.cfg
复制代码

如果不能执行,可以修改xsync文件的权限

chmod a+x xsync
复制代码

或者将你的xsync文件移到usr/local/bin目录下。

转载于:https://juejin.im/post/5c77ac376fb9a049e4136499

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值