xsync集群分发脚本

Posted 章鱼哥牌深海鱼油

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了xsync集群分发脚本相关的知识,希望对你有一定的参考价值。

1.双方都需要安装 rsync远程同步工具

 

2.需要在etc/hosts 中添加映射

 

3.脚本编写

(在bin目录下创建)

#!/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=103; host<105; host++)); do

        echo ------------------- hadoop$host --------------

        rsync -rvl $pdir/$fname $user@hadoop$host:$pdir

done

 

这个作用是将本机的文件同步到hadoop103-104

 

 

 

进一步的可以对其进行修改,能够做到同步到指定的服务器

 

方法是多接收3个参数,分别是服务器名称,起始编号,末尾编号,对应(hadoop,103,104)

 

#!/bin/bash

#1 获取输入参数个数,如果没有参数,直接退出

pcount=$#

if((pcount=!=4)); 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`

 

slave=$2

startline=$3

endline=$4 

 

#5 循环

for((host=$startline; host<=$endline; host++)); do

        echo ------------------- hadoop$host --------------

        rsync -rvl $pdir/$fname $user@$slave$host:$pdir

done

 

修改脚本 xsync 具有执行权限

chmod 777 xsync

调用脚本形式:xsync 文件名称

xsync /home/atbigdata/bin (xxx xxx xxx)

 

以上是关于xsync集群分发脚本的主要内容,如果未能解决你的问题,请参考以下文章

Hadoop 开发重点:完全分布式运行模式编写集群分发脚本 scp/rsync/xsync

分布式集群群发脚本(xsync)

安利:xsync自动分发脚本

安利:xsync自动分发脚本

分布式集群群发脚本(xsync)

Hadoop3.x - 本地安装 + 完全分布式安装 + 集群配置 + xsync分发脚本 (解决root用户启动Hadoop集群的报错问题)