功能实现:循环复制文件到所有结点的相同目录下。
#!/bin/bash
# 判断参数个数
if [ $# -lt 1 ]
then
echo "请输入要分发的文件名"
exit;
fi
#遍历所有服务器
for host in hadoop001 hadoop002 hadoop003
do
echo ==========$host=============
#遍历所有文件,逐个发送
for file in $@
do
#判断文件是否存在
if [ -e$file ]
then
#获取文件父目录
pdir=$(cd -P $(dirname $file);pwd)
#获取当前文件的名称
fname=$(basename $file)
ssh $host "mkdir -p $pdir"
rsync -av $pdir/$fname $host:$pdir
else
echo "文件不存在!"
fi
done
done
注意:要分发的文件要给出绝对路径哦!!
结果展示:



