#! /bin/bash
if [ $# -eq 0 ] #判读是否传入参数
then
echo "你没有传入参数"
exit #没有传入参数就退出程序
fi
pname=$1 #$1代表传入的要发送的文件路径
fname=$(basename $pname) #basename是获取你传入路径的文件名 写在$()是将()里面运行的结果赋值fname
pdir=$(cd -P $(dirname $pname);pwd)
user=`whoami` #获取用户名
for host in hadoop1 hadoop2 hadoop3 hadoop 4
do
scp -r $pdir/$fname $user@$host:$pdir
done
rsync脚本
#! /bin/bash
if [ $# -eq 0 ] #判断传入的参数
then
echo "你没有传入参数"
exit
fi
for host in hadoop1 hadoop2 hadoop3 hadoop4 #遍历集群所有机器
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 $file does not exists!
fi
done
done