xsync集群分发脚本

1.在master、slav1、slave2上安装 rsync远程同步工具

yum install -y rsync

2.需要在etc/hosts 中添加映射 (每台都配置)

vim /etc/hosts

# 添加相关hosts映射

192.168.0.101 master
192.168.0.102 slave1
192.168.0.103 slave2

3.配置ssh免密

# 在master上配置免密

rm -rf /root/.ssh

ssh-keygen

cd /root/.ssh

mv id_rsa.pub authorized_keys

scp -r /root/.ssh slave1:/root

scp -r /root/.ssh slave2:/root

4.编写xsync脚本

vim /xsync
#!/bin/bash
#1. 判断参数个数
if [ $# -lt 1 ]
then
    echo Not Enough Arguement!
    exit;
fi
#2. 遍历集群所有机器
for host in master slave1 slave2     # 注意修改hosts对应解析
do
    echo ====================  $host  ====================
#3. 遍历所有目录,挨个发送
    for file in $@
    do
#4. 判断文件是否存在
        if [ -e $file ]
            then
 #5. 获取父目录
                pdir=$(cd -P $(dirname $file); pwd)
#6. 获取当前文件的名称
                fname=$(basename $file)
                ssh $host "mkdir -p $pdir"
                rsync -av $pdir/$fname $host:$pdir
            else
                echo $file does not exists!
        fi
    done
done

5.赋予执行脚本执行权限

chmod +x /xsync

6.复制脚本到bin目录下

cp xsync /bin/

7.测试

xsync /usr/local/src/kafka
xsync集群分发脚本_第1张图片

你可能感兴趣的:(kafka,linux,分布式)