其他分享
首页 > 其他分享> > scp、rsync/xsync分发脚本/SSH免密登录

scp、rsync/xsync分发脚本/SSH免密登录

作者:互联网

scp:安全拷贝

rsync:远程同步

xsync自动分发脚本

#!/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

SSH免密登录

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