xsync 集群同步脚本
1:修改/etc/hosts文件:添加下面主机
192.168.3.44 hadoop101
192.168.3.43 hadoop102
192.168.3.45 hadoop103
2:编写xsync文件
#! /bin/bash #1 获取输入参数个数,如果没有参数,直接退出 pcount=$# if [ $pcount -lt 1 ] then echo No Enough Arguement! exit; fi #2. 遍历集群所有机器 for host in hadoop102 hadoop103 do echo ==================== $host ==================== #3. 递归遍历所有目录 for file in $@ do #4 判断文件是否存在 if [ -e $file ] then #5. 获取全路径 pdir=$(cd -P $(dirname $file); pwd) echo pdir=$pdir #6. 获取当前文件的名称 fname=$(basename $file) echo fname=$fname #7. 通过ssh执行命令:在$host主机上递归创建文件夹(如果存在该文件夹) ssh $host "source /etc/profile;mkdir -p $pdir" #8. 远程同步文件至$host主机的$USER用户的$pdir文件夹下 rsync -av $pdir/$fname $USER@$host:$pdir else echo $file Does Not Exists! fi done done
3: 修改脚本 xsync 具有执行权限
chmod 777 xsync
4:运行命令: mv xsync /usr/local/bin 目录下
5:集群分发测试:
xsync zookeeper