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 存放受權過得無密登陸服務器公鑰
相關文章
相關標籤/搜索