- 在使用之前,所有节点均需要安装 rsync 服务(yum install rsync -y)
- 首先,打开命令行终端,进入root用户模式,输入:
cd /bin
- 输入
touch xsync
- 输入
vi xsync
- 按i键进入编辑状态,将如下脚本内容复制进去
CentOS8和CentOS6在脚本语言编写上语法规则有些许变化
现将CentOS8下xsync脚本记录如下:
#!/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=102; host<105; host++)); do
echo ---------------------------- hadoop$host ---------------------
rsync -av $pdir/$fname $user@hadoop$host:$pdir
done
此脚本分发到的主机名为hadoop102,hadoop103,hadoop104,供参考.
- 按esc键,输入:wq保存并退出
- 添加权限.在命令行终端输入
chmod 777 xsync
- 使用方式:xsync [文件目录]
- 其他:执行命令前可以先配置执行xsync命令的root用户的ssh,可参考:https://blog.csdn.net/yhblog/article/details/84029535
如果这里配置了ssh免密登录将不用输入其他节点的root用户密码。