例如:循环复制文件到所有节点的相同目录下:
首先在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虚拟机中查看:
文件成功传过来了。
借此脚本,就可以实现一次性给不同虚拟机发送文件了。