xsync集群分发配置

1)rsync是什么?

rsync主要用于备份和镜像,具备速度快、避免复制相同内容和支持符号连接的优势。算法

2)rsync和scp区别:

  • 用rsync作文件的复制要比scp的速度快,rsync只对差别文件作更新。
  • scp是把全部文件都复制过去。

3)基本语法

rsync    -av       $pdir/$fname              $user@hadoop$host:$pdir/$fname
命令   选项参数   要拷贝的文件路径/名称    目的用户@主机:目的路径/名称bash

命令   选项参数   要拷贝的文件路径/名称    目的用户@主机:目的路径/名称
rsync  -av       $pdir/$fname         $user@hadoop$host:$pdir/$fname
选项 功能
-a 归档拷贝
-v 显示复制过程

xsync集群分发脚本

        执行命令可循环复制文件到全部节点的相同目录下服务器

        指望脚本:  xsync   要同步的文件名称ssh


说明:在/usr/local/bin这个目录下存放的脚本,用户能够在系统任何地方直接执行。oop

    也能够放到当前用户如 /home/luffy/bin 下建立的/bin目录中测试

脚本实现

  • 在/usr/local目录下建立bin目录,并在bin目录下xsync建立文件,文件内容以下:
#!/bin/bash
#1 获取输入参数个数,若是没有参数,直接退出
pcount=$#
if [ $pcount -lt 1 ]
then
    echo Not Enough Arguement!
    exit;
fi

#2. 遍历集群全部机器
for host in luffy1 luffy2 luffy3
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 具备执行权限
[root@luffy1 bin]# chmod 777 xsync
  • 调用脚本测试:xsync 文件名称
[root@luffy3 bin]#  xsync aaa

脚本能够正常运行, 可是须要每次输入密码. 免密登陆便可实现简化密码输入spa

设置集群机器免密登陆

免密登录原理:code

在这里插入图片描述

配置免密登录blog

a)生成密钥对递归

[zxy@hadoop102 .ssh]$ ssh-keygen -t rsa 
  • 而后敲(三个回车),就会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥)
  • 使用rsa算法生成秘钥对
  • 生成的秘钥对在用户家目录下: /home/user/.ssh

b)将公钥拷贝到要免密登陆的目标机器上

[zxy@hadoop102 .ssh]$ ssh-copy-id hadoop102
[zxy@hadoop102 .ssh]$ ssh-copy-id hadoop103
[zxy@hadoop102 .ssh]$ ssh-copy-id hadoop104

c)分别ssh直接登录hadoop102

ssh hadoop103

3.).ssh文件夹下(~/.ssh)的文件功能解释

文件名 功能
known_hosts 记录ssh访问过计算机的公钥(public key)
id_rsa 生成的私钥
id_rsa.pub 生成的公钥
authorized_keys 存放受权过得无密登陆服务器公钥
相关文章
相关标签/搜索