scp、rsync/xsync分发脚本/SSH免密登录
作者:互联网
scp:安全拷贝
-
我们已经在一台虚拟机上安装了hadoop和jdk,那么需要将这台虚拟机上的hadoop和jdk拷贝到其他虚拟机上:
scp -r jdk-15.0.2/ $用户名@hadoop102:/opt/module/
这是"推"。或者也可以采用"拉":scp -r $用户名@hadoop100:/opt/module/hadoop-3.1.4
将文件从另一台虚拟机拉过来。这两种方法都可以,一个是被动等别人传数据,一个是主动拉取数据。 -
还有一种方法,可以在第102号虚拟机,将100号虚拟机的文件拷贝到103号虚拟机上:
scp -r fzl@hadoop100:/opt/module/* fzl@hadoop103:/opt/module/
-
然后将/etc/profile.d/下的环境变量拷贝
rsync:远程同步
- scp是完全复制,如果是只需要更改几个文件的话,完全复制效率比较低,这时候就用到了rsync命令:同步
- rsync:只同步两边不一样的部分,例如在hadoop100里改了一份xml,同步到hadoop102,那么就只同步被改的xml,其他的不用改变,效率较高
rsync -av hadoop-3.1.4/ $用户名@hadoop104:/opt/module/
xsync自动分发脚本
- 首先安装rsync
- 然后在~目录下创建bin目录存放脚本
- 然后创建脚本文件
touch xsync
- 写脚本
vim xsync
- 下方脚本功能:自动将目录同步到hadoop102、hadoop103、hadoop104上
#!/bin/bash
#1 获取输入参数个数,如果没有参数,直接退出
pcount=$#
if [ $pcount -lt 1 ]
then
echo Not Enough Arguement!
exit;
fi
#2. 遍历集群所有机器
# 也可以采用:
# for host in hadoop{102..104};
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)
echo pdir=$pdir
#6. 获取当前文件的名称
fname=$(basename $file)
echo fname=$fname
#7. 通过ssh执行命令:在$host主机上递归创建文件夹(如果存在该文件夹)
ssh $host "mkdir -p $pdir"
#8. 远程同步文件至$host主机的$USER用户的$pdir文件夹下
rsync -av $pdir/$fname $USER@$host:$pdir
else
echo $file does not exists!
fi
done
done
- 然后要给xsync脚本权限
chmod 777 xsync
- 调用脚本方法:
xsync ~/bin(要同步的文件夹)
,这里我们直接通过脚本将脚本同步到hadoop102、hadoop103、hadoop104系统
SSH免密登录
- 集群间可以通过配置SSH实现免密登录
- 将服务器A的公钥拷贝给服务器B,就相当于服务器A给服务器B授权允许服务器B免密登录
- 当SSH访问服务器B(数据用私钥A加密)
- 服务器B接收数据,查找有无服务器A发来的公钥A,如果发现存在公钥A
- 服务器B会用公钥A加密数据并返回给服务器A
- 服务器A接收到数据后,会用自己的私钥A来解密服务器B发来的数据
- 这样就实现了免密通讯
ssh-keygen -t rsa
在/home/用户名/.ssh/
目录下生成秘钥对
然后要将公钥拷贝到集群中其他虚拟机上,才能实现SSH免密登录
ssh-copy-id hadoop102
,这里拷贝到102上。
然后测试:ssh hadoop102
,免密登录成功
集群中其他虚拟机也按如上配置,就都实现了SSH免密登录。
.ssh目录下有如下文件:
分别有如下功能:
文件名 | 功能 |
---|---|
known_hosts | 记录ssh访问过计算机的公钥(public key) |
id_rsa | 生成的私钥 |
id_rsa.pub | 生成的公钥 |
authorized_keys | 存放授权过得无密登录服务器公钥 |
标签:rsync,免密,xsync,pdir,虚拟机,公钥,ssh,服务器 来源: https://blog.csdn.net/weixin_44976835/article/details/115092598