scp、rsync/xsync分发脚本/SSH免密登录
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了scp、rsync/xsync分发脚本/SSH免密登录,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2606字,纯文字阅读大概需要4分钟。
内容图文
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 | 存放授权过得无密登录服务器公钥 |
内容总结
以上是互联网集市为您收集整理的scp、rsync/xsync分发脚本/SSH免密登录全部内容,希望文章能够帮你解决scp、rsync/xsync分发脚本/SSH免密登录所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。