#!bin/bash
#1、判断参数是否合法 #判断参数个数是否小于1
if [ $# -lt 1 ]
then
echo Not Enough Arguement!
exit;
fi
#2、遍历集群所有服务器,并以host代替每台服务器命名
for host in hadoop102 hadoop103 hadoop104
do
echo ================$host==================
#3、遍历所有目录,挨个发送
for file in $@
do
#4、判断文件是否存在
if [ -e $file ]
then
#5、获取文件父目录,-P防止文件是软连接
pdir=$(cd -P $(dirname $file);pwd)
#6、获取当前文件名称,可能传入绝对路径
fname=$(basename $file)
#7、登录服务器并创建父目录,如果已存在就不用创建,加p创建多级目录
ssh $host "mkdir -p $pdir"
#8、执行差异化发送文件语句
rsync -av $pdir/$fname $host:$pdir
else
echo $file does not exists!
fi
done
done