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)

 

上一篇:【转】使用Docx.Core创建word表格


下一篇:JS——表单