例如:循环复制文件到所有节点的相同目录下:
首先在centos01中的xiximayou用户下的/home目录下新建一个bin文件夹,在bin文件夹中新建xsync.sh文件,在里面输入:
!/bin/bash
#获取输入参数个数,如果没有参数,就直接输出
pcount=$#
if((pcount==0));then
echo no args;
exit;
fi
#获取文件名称
p1=$1
fname=`basename $p1`
echo fname=$fname
#获取上级目录的绝对路径
pdir=`cd -P $(dirname $p1);pwd`
echo pdir=$pdir
#获取当前用户名称
user=`whoami`
#循环
for((host=02;host<03;host++));do
echo --------------hadoop0$host-------------
rsync -rvl $pdir/$fname $user@hadoop0$host:$pdir
done
然后在退出bin目录,输入xsync.sh bin/
由于我目前只有另一个虚拟机centos02,所以只会分发给它。
之后我们进入到centos02虚拟机中查看:
文件成功传过来了。
借此脚本,就可以实现一次性给不同虚拟机发送文件了。