分发、免密配置
SCP全量
# 语法:scp -r 本机文件夹 目标机用户@目标机地址:目标机文件夹
# hadoop101推到hadoop102:
scp -r /opt/module root@hadoop102:/opt/module
# hadoop103从hadoop101拿数据:
scp -r root@hadoop101:/opt/module /opt/module
# hadoop3 把数据从hadoop101拿到hadoop104:
scp -r root@hadoop101:/opt/module root@hadoop104:/opt/module
# 修改普通用户权限及其所属的主:
chown root:root -R /opt/module
RSYNC增量
# 条件:同步的服务器之间都要装有rsync
yum install rsync -y
# [语法:rsync -rvl 源数据 目的地数据]
rsync -rvl /opt/software/ root@hadoop102:/opt/software/
分发脚本XSYNC:
mkdir -p ~/bin cd ~/bin
touch xsync
vim xsync
#修改脚本具有执行权限
chmod 777 xsync
#!/bin/bash
#1 获取输入参数个数,如果没有参数,直接退出
pcount=$#
if((pcount==0)); then
echo no args;
exit;
fi
#2 获取文件名称
p1=$1
fname='basename $p1'
echo fname=$fname
#3 获取上级目录到绝对路径
pdir='d -P $(dirname $p1); pwd'
echo pdir=$pdir
#4 获取当前用户名称
user='whoami'
#5 循环,这里host根据自己的节点数和主机名设置
for((host=102; host<=104; host++)); do
#echo $pdir/$fname $user@hadoop$host:$pdir
echo --------------- hadoop$host ----------------
rsync -rvl $pdir/$fname $user@hadoop$host:$pdir
done
SSH免密配置
# 生成当前用户的公钥和私钥:
ssh-keygen -t rsa
# 将公钥复制到目标主机:包括自己
ssh-copy-id hadoop103