rsync是一个非常好的同步命令,复制速度特别的快,会对差异化的文件做同步,尤其是在集群的维护的时候,需要经常的复制文件。这里对rsync做了一个封装的脚本,可以对集群的机器进行一键的复制文件和更新文件。

封装的脚本文件如下:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#!/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=2; host<4; host++)); do
echo ------------------- flink$host --------------
        rsync -rvl $pdir/$fname $user@flink$host:$pdir
done

脚本路径是:/root/xsync.sh

为了是脚本可以在任何一个目录下进行使用,下面需要配置下别名:

1
2
3
4
5
6
7
8
# 打开配置文件
vim /etc/profile

# 需要加入的内容
alias xsync='sh /root/xsync.sh'

# 对配置文件生效
source /etc/profile

使用方法:

1
2
# 在任何一个目录下
xsync xxxxx