1)进入当前用户的家目录
注意:在家目录下编写脚本文件不用配置环境变量,使用echo $PATH可查看环境变量。
2)创建bin目录
mkdir bin
3)进入bin目录
cd bin/
4)创建脚本文件
vim xsync.sh
#!/bin/bash
#1.判断参数个数
if [ $# -lt 1 ]
then
echo Not Enough Arguement!
exit
fi
#2.遍历集群所有机器
for host in hadoop102 hadoop103 hadoop104
do
echo ============ $host ===========
#3.遍历所有目录,挨个发送
for file in $@
do
#4.判断文件是否存在
if [ -e $file ]
then
#5.获取父目录
pdir=$(cd -P $(dirname $file); pwd)
#6.获取当前文件的名称
fname=$(basename $file)
ssh $host "mkdir -p $pdir"
rsync -av $pdir/$fname $host:$pdir
else
echo $file does not exists!
fi
done
done
5)为xsync.sh添加执行权限
chmod u+x xsync.sh
6)配置SSH免密登录
(1)分别在hadoop102、hadoop103、hadoop104生成公钥和私钥
ssh-keygen -t rsa
(2)然后敲(三个回车),就会在.ssh目录下生成两个文件id_rsa(私钥)、id_rsa.pub(公钥);生成的.ssh文件夹在当前用户的家目录下面。
(3)分别在hadoop102、hadoop103、hadoop104执行,将公钥拷贝到免密登录的目标机器上
ssh-copy-id hadoop102
ssh-copy-id hadoop103
ssh-copy-id hadoop104