循环复制文件到所有节点的相同目录下
集群机子hadoop129/hadoop130/hadoop131之间同步文件
基本命令
rsync -rvl /opt/module fengling@hadoop129:/opt/
参数说明:
参数 | 备注 |
-r | 递归拷贝 |
-v | 显示复制的过程 |
-l | 拷贝符号链接 |
#!/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=129; host<=131; host++)); do
echo ------------------- hadoop$host --------------
rsync -rvl $pdir/$fname $user@hadoop$host:$pdir
done
修改执行权限
chmod 777 xsync
调用
[fengling@hadoop129 bin]$ xsync /home/fengling/bin/