最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

基于rsync寫腳本實(shí)現(xiàn)多節(jié)點(diǎn)多服務(wù)器文件一鍵同步的方法

 更新時(shí)間:2022年01月12日 10:24:54   作者:南島鹋  
這篇文章主要介紹了利用rsync寫腳本實(shí)現(xiàn)多節(jié)點(diǎn)多服務(wù)器文件一鍵同步,本文將介紹?scp?和?rsync?兩個(gè)命令及基本語(yǔ)法介紹,需要的朋友可以參考下

集群腳本分發(fā)

在處理 Linux 集群的時(shí)候,常常會(huì)涉及到集群內(nèi)文件的同步。文件數(shù)量多,且需要頻繁同步的情況下,運(yùn)用 一些 Linux 命令能很大程度上的幫助我們節(jié)省時(shí)間和精力。

本文將介紹 scp 和 rsync 兩個(gè)命令

  1. scp(secure copy) 安全拷貝:可以實(shí)現(xiàn)服務(wù)器與服務(wù)器之間的數(shù)據(jù)拷貝。rsync 遠(yuǎn)程同步工具:主要用于備份和鏡像。具有速度快、避免復(fù)制相同內(nèi)容和支持符號(hào)鏈接的優(yōu)點(diǎn)。
  2. 區(qū)別:用 rsync 做文件的復(fù)制要比 scp 的速度快,rsync 只對(duì)差異文件做更新。scp 是把所有文件都復(fù)制過去。

scp

基本語(yǔ)法

scp -r $pdir/$fname $user@$host:$pdir/$fname

scp:命令

-r:遞歸

p d i r / pdir/ pdir/fname:要拷貝的文件路徑/名稱

u s e r @ user@ user@host: p d i r / pdir/ pdir/fname:目的地用戶@主機(jī):目的地路徑/名稱

簡(jiǎn)單操作

在 ndmiao 用戶目錄下,創(chuàng)建一個(gè) test 文件夾, 并創(chuàng)建一些文件。修改 test 文件目錄權(quán)限歸屬為 ndmiao:ndmiao

[ndmiao@centos01 ~]$ sudo chown ndmiao:ndmiao -R test

在 centos01 上將 test 文件目錄拷貝到 centos02 上,回車后會(huì)提示是否確認(rèn)連接,確認(rèn)連接后輸入 centos02 的密碼即可

[ndmiao@centos01 ~]$ scp -r test ndmiao@centos02:/home/ndmiao/

在 centos02 上將 centos01 中的目錄拷貝到 centos02

[ndmiao@centos01 ~]$ scp -r test ndmiao@centos02:/home/ndmiao/

在 centos02 上將 centos01 上的目錄拷貝到 centos03

[ndmiao@centos02 ~]$ scp -r ndmiao@centos01:/home/ndmiao/test ndmiao@centos03:/home/ndmiao/

rsync

基本語(yǔ)法

rsync -av $pdir/$fname $user@$host:$pdir/$fname

rsync:命令

-a:歸檔拷貝

-v:顯示復(fù)制過程

p d i r / pdir/ pdir/fname:要拷貝的文件路徑/名稱

u s e r @ user@ user@host: p d i r / pdir/ pdir/fname:目的地用戶@主機(jī):目的地路徑/名稱

簡(jiǎn)單操作

同步 centos01 目錄到 centos02

[ndmiao@centos01 ~]$ rsync -av test ndmiao@centos02:/home/ndmiao/

xsync

雖然上面兩個(gè)命令已經(jīng)極大的方便了文件的同步,但是當(dāng)集群中存在著幾十幾百甚至上千服務(wù)器的時(shí)候,就又顯的麻煩了,這時(shí)候就可以編寫一個(gè)shell腳本來實(shí)現(xiàn)集群文件的同步。

需求

能夠一條命令同步目錄至集群所有的節(jié)點(diǎn)

實(shí)現(xiàn)

配置 /etc/hosts ,因?yàn)槟_本需要通過主機(jī)名來獲取節(jié)點(diǎn)的地址, 文件中追加節(jié)點(diǎn)地址以及對(duì)應(yīng)的主機(jī)名。配置好之后,需要重啟。

192.168.10.101 centos01
192.168.10.102 centos02
192.168.10.102 centos03

因?yàn)樾枰_本在任何路徑下都能夠使用,所以需要將腳本放置在聲明了全局環(huán)境變量的路徑下面。

[ndmiao@centos01 ~]$ /usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/ndmiao/.local/bin:/home/ndmiao/bin

于是選擇將 xsync 文件放置在 /home/ndmiao/bin 目錄下

#!/bin/bash
#1. 判斷參數(shù)個(gè)數(shù)
if [ $# -lt 1 ]
then
    echo Not Enough Arguement!
    exit;
fi
#2. 遍歷集群所有機(jī)器
for host in centos01 centos02 centos03
do
    echo ====================  $host  ====================
    #3. 遍歷所有目錄,挨個(gè)發(fā)送
    for file in $@
    do
        #4. 判斷文件是否存在
        if [ -e $file ]
            then
                #5. 獲取父目錄
                pdir=$(cd -P $(dirname $file); pwd)
                #6. 獲取當(dāng)前文件的名稱
                fname=$(basename $file)
                ssh $host "mkdir -p $pdir"
                rsync -av $pdir/$fname $host:$pdir
            else
                echo $file does not exists!
        fi
    done
done

修改腳本 xsync 的權(quán)限

[ndmiao@centos01 bin]$ chmod 777 xsync

測(cè)試腳本

[ndmiao@centos01 ~]$ xsync /home/ndmiao/bin

運(yùn)行后會(huì)發(fā)現(xiàn)所有節(jié)點(diǎn)的 /home/ndmiao/bin 下都會(huì)出現(xiàn) xsync 腳本

如果想要以 root 的身份來運(yùn)行

[ndmiao@centos01 ~]$ sudo /home/ndmiao/bin/xsync /home/ndmiao/test

SSH 無密碼登錄

雖然已經(jīng)配置好了xsync,但是每同步一個(gè)節(jié)點(diǎn)就要輸入一次節(jié)點(diǎn)的密碼,SSH 無密碼登錄就可以去除這種重復(fù)的操作

免登陸原理

假設(shè)有兩臺(tái)服務(wù)器,一臺(tái)為 centos01,一臺(tái)為 centos02,使用 ssh-key-gen 在 centos01 的 /home/ndmiao/.ssh 會(huì)生成私鑰 id_rsa 和 公鑰 id_rsa.pub。將 centos01 的公鑰拷貝到 centos02 的 authorized_keys 后,當(dāng) centos01 通過 ssh 訪問 centos02(數(shù)據(jù)用私鑰加密),centos02 會(huì)授權(quán) authorized_keys 中的 centos01 公鑰來解密私鑰,然后用 centos01 公鑰加密數(shù)據(jù)返還給 centos01,centos01 接受到數(shù)據(jù)后用私鑰來解密數(shù)據(jù)。

操作步驟

生成公鑰和私鑰

[ndmiao@centos01 ~]$ cd .ssh
[ndmiao@centos01 .ssh]$ ssh-keygen -t rsa

將公鑰拷貝到需要免密登錄的目標(biāo)節(jié)點(diǎn),因?yàn)?ssh 訪問自身節(jié)點(diǎn)也需要密碼,所以自身也需要拷貝

[ndmiao@centos01 .ssh]$ ssh-copy-id centos01
[ndmiao@centos01 .ssh]$ ssh-copy-id centos02
[ndmiao@centos01 .ssh]$ ssh-copy-id centos03

這時(shí)候就可以通過 centos01 來 ssh 免密訪問三臺(tái)節(jié)點(diǎn)了,運(yùn)行 xsync 也不再需要輸入密碼。如果想要其它節(jié)點(diǎn)也能無密碼訪問其它的節(jié)點(diǎn),也需要同樣的配置過程。因?yàn)?Linux 不同用戶是隔離的,所以其它用戶想要無密碼訪問其它節(jié)點(diǎn),也需要同樣操作配置,包括 root 用戶。

到此這篇關(guān)于利用rsync寫腳本實(shí)現(xiàn)多節(jié)點(diǎn)多服務(wù)器文件一鍵同步的文章就介紹到這了,更多相關(guān)rsync多服務(wù)器文件同步內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 小項(xiàng)目中管理npm包版本的思路與方法

    小項(xiàng)目中管理npm包版本的思路與方法

    這篇文章主要給大家介紹了關(guān)于小項(xiàng)目中該如何管理npm包版本的思路與方法,npm包版本管理是非常重要的,文章通過示例代碼介紹的很詳細(xì),需要的朋友可以參考下
    2021-06-06
  • 微信小程序里使用SVG矢量圖標(biāo)方法詳解

    微信小程序里使用SVG矢量圖標(biāo)方法詳解

    在微信小程序開發(fā)過程中需要在小程序里使用SVG矢量圖標(biāo),下面為大家分享2種在微信小程序中引入SVG矢量圖標(biāo)的方法
    2018-10-10
  • 基于Leaflet的VideoOverlay視頻圖層疊加實(shí)戰(zhàn)教程

    基于Leaflet的VideoOverlay視頻圖層疊加實(shí)戰(zhàn)教程

    這篇文章主要介紹了基于Leaflet的VideoOverlay視頻圖層疊加實(shí)戰(zhàn),本文首先介紹了DistortableVideo組件的相關(guān)知識(shí),它的github倉(cāng)庫(kù)信息,相關(guān)源代碼的目錄說明,使用依賴信息,需要的朋友可以參考下
    2023-02-02
  • 老生常談?dòng)?jì)算機(jī)中的編碼問題(必看篇)

    老生常談?dòng)?jì)算機(jī)中的編碼問題(必看篇)

    下面小編就為大家?guī)硪黄仙U動(dòng)?jì)算機(jī)中的編碼問題(必看篇)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-07-07
  • IDEA一鍵啟動(dòng)多個(gè)微服務(wù)操作步驟

    IDEA一鍵啟動(dòng)多個(gè)微服務(wù)操作步驟

    在開發(fā)多個(gè)微服務(wù)的項(xiàng)目時(shí),逐個(gè)啟動(dòng)服務(wù)較為繁瑣,通過IDEA的Compound功能,可以實(shí)現(xiàn)一鍵啟動(dòng)多個(gè)服務(wù),本文詳細(xì)介紹了如何通過編輯配置來添加微服務(wù)群組,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2024-09-09
  • 怎樣寫commit?log記錄及如何提交有哪些約定

    怎樣寫commit?log記錄及如何提交有哪些約定

    這篇文章主要為大家介紹了怎樣寫commit?log記錄以及及如何提交有哪些約定,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-06-06
  • jQuery會(huì)死嗎?我為什么不用vue寫富文本

    jQuery會(huì)死嗎?我為什么不用vue寫富文本

    jQuery會(huì)死嗎?我為什么不用vue寫富文本,本文通過文字實(shí)例代碼相結(jié)合的形式給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-05-05
  • Git回退代碼到某次commit的實(shí)現(xiàn)方法

    Git回退代碼到某次commit的實(shí)現(xiàn)方法

    這篇文章主要介紹了Git回退代碼到某次commit的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • Vscode中快速創(chuàng)建自定義代碼模板的方法

    Vscode中快速創(chuàng)建自定義代碼模板的方法

    這篇文章主要介紹了Vscode中快速創(chuàng)建自定義代碼模板的方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • Git下載與環(huán)境變量配置方法

    Git下載與環(huán)境變量配置方法

    前幾天在寫博客 手把手教你用Hexo + github 搭建自己博客的時(shí)候,經(jīng)常需要用到一些git操作,截了好多圖,于是就想干脆整理成一系列的git 教程,總結(jié)如下,需要的朋友可以參考下
    2017-10-10

最新評(píng)論

常山县| 河曲县| 习水县| 福安市| 达尔| 朝阳县| 平顶山市| 新昌县| 英山县| 资阳市| 和硕县| 芮城县| 汾阳市| 昌黎县| 长葛市| 南木林县| 泰和县| 砚山县| 民勤县| 伊吾县| 柏乡县| 依安县| 海盐县| 潢川县| 武夷山市| 阜阳市| 曲麻莱县| 固安县| 南乐县| 得荣县| 怀集县| 德庆县| 高要市| 荆门市| 凭祥市| 富裕县| 汝阳县| 偃师市| 敦煌市| 丹棱县| 松滋市|