rsync服务器集群同步工具
测试集群 : 10.255.175.240 10.255.175.241 10.255.175.242
安装
# 源主机+目标主机都安装
$ yum -y install rsync
$ yum -y install xinetd
功能一 向集群各节点同步文件
-
编写分发文件脚本
# 源主机上 # 该目录下 $ cd /usr/local/bin # 创建名为xsync的文件 内容如下 $ vi xsync #!/bin/sh # 获取输入参数个数 如果没有参数 直接退出 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=1; host<=3; host++)); do echo $pdir/$fname $user@slave$host:$pdir echo ==================slave$host================== rsync -rvl $pdir/$fname $user@slave$host:$pdir done # tips: 0.这里的slave对应自己主机名 需要相应修改 如 slave替换为clickhouse ; 1.for循环中的host的边界值 需要相应修改 如 我的集群各节点的主机名分别为 clickhouse1 clickhouse2 clickhouse3 host就从1或2 循环到3 # 给文件增加执行权限 $ chmod 777 xsync
-
分发文件
# 将文件/opt/software/kafka_011分发到集群中的各个节点中 $ xsync /opt/software/kafka_011
功能二 向集群各节点同步执行命令
- 情景一 kafka一键启动服务/一键关闭服务 – 正常启动kafka需要在所有节点上启动zk服务和kafka服务 现在做一键启动
-
编写kafka一键启动/关闭服务脚本
# 进入kafka的bin目录下 $ cd /opt/software/kafka_011/bin # 新建一个执行文件 内容如下 $ vi kafka-server.sh #!/bin/bash case $1 in "start"){ for i in 10.255.175.240 10.255.175.241 10.255.175.242 do echo "************$i************" ssh $i "/opt/software/kafka_011/bin/kafka-server-start.sh -daemon /opt/software/kafka_011/config/server.properties" done };; "stop"){ for i in 10.255.175.240 10.255.175.241 10.255.175.242 do echo "************$i************" ssh $i "/opt/software/kafka_011/bin/kafka-server-stop.sh /opt/software/kafka_011/config/server.properties" # 停服务 命令后边不加配置文件也可以的 done };; esac # 给文件增加执行权限 $ chmod 777 kafka-server.sh
-
一键停止服务
$ cd /opt/software/kafka_011/bin $ kafka-server.sh stop # 查看每个节点的进度 $ jsp
-
一键启动服务
$ cd /opt/software/kafka_011/bin $ kafka-server.sh start # 查看每个节点的进度 $ jsp
-