欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Linux服務(wù)器間文件實(shí)時(shí)同步的實(shí)現(xiàn)

 更新時(shí)間:2018年11月21日 09:32:47   作者:AlienPaul  
這篇文章主要介紹了Linux服務(wù)器間文件實(shí)時(shí)同步的實(shí)現(xiàn),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧

使用場(chǎng)景

現(xiàn)有服務(wù)器A和服務(wù)器B,如果服務(wù)器A的指定目錄(例如 /home/paul/rsync/ )中的內(nèi)容發(fā)生變更(增刪改和屬性變更),實(shí)時(shí)將這些變更同步到服務(wù)器B的目標(biāo)目錄中(例如 /home/paul/rsync/ )。

數(shù)據(jù)鏡像備份工具Rsync

Rsync是一個(gè)非??焖俸挽`活的文件復(fù)制工具。它支持本機(jī)或者是和遠(yuǎn)程服務(wù)器間的文件復(fù)制。Rsync使用了delta-transfer算法,它只需要傳送源端和目標(biāo)端的文件差異部分,大大減少了網(wǎng)絡(luò)帶寬的消耗和復(fù)制耗費(fèi)的時(shí)間。Rsync多用于數(shù)據(jù)備份和鏡像。

Rsync使用了快速檢查算法,通過(guò)比較文件大小或最后修改時(shí)間的變化來(lái)判斷文件是否需要同步。

Rsync連接遠(yuǎn)程主機(jī)有兩種方式:使用ssh或rsync daemon。這里使用Rsync方式來(lái)實(shí)現(xiàn)遠(yuǎn)程文件備份。

Rsync的安裝與操作

安裝Rsync

分別在服務(wù)器A和服務(wù)器B的terminal執(zhí)行:

sudo yum install rsync

安裝完畢后,會(huì)發(fā)現(xiàn)rsync的配置文件位于 etc/rsyncd.conf 。該文件使用daemon方式同步時(shí)需要使用,此處暫不介紹。

配置服務(wù)器A和B之間的免密登錄

服務(wù)器A執(zhí)行:

ssh-keygen
ssh-copy-id 服務(wù)器B的IP地址

創(chuàng)建源端目錄和目標(biāo)端目錄

在服務(wù)器A中:

mkdir /home/paul/rsync

在服務(wù)器B中:

mkdir /home/paul/rsync

在服務(wù)器A創(chuàng)建測(cè)試文件

echo "Hello from Server A" >> /home/paul/rsync/demo.txt

執(zhí)行文件傳送命令

在服務(wù)器A運(yùn)行:

# (1)
rsync -avPz --progress /home/paul/rsync 192.168.100.130:/home.paul/rsync
# (2)
rsync -avPz --delete --progress /home/paul/rsync 192.168.100.130:/home.paul/rsync

會(huì)發(fā)現(xiàn)在demo.txt也出現(xiàn)在了服務(wù)器B中/home/paul/rsync目錄。

命令解析:

(1) 將服務(wù)器A中的/home/paul/rsync目錄內(nèi)的文件復(fù)制到服務(wù)器B(192.168.100.130)的/home.paul/rsync中。

(2) 比較目標(biāo)端和源端的文件,如果目標(biāo)端的文件在源端不存在,在目標(biāo)端刪除該文件。

Rsync存在的問(wèn)題

Rsync僅是一個(gè)文件復(fù)制工具,它無(wú)法對(duì)源端文件的增刪改操作進(jìn)行監(jiān)聽。在源端做出更改后,需要執(zhí)行rsync命令才能將變更同步到目標(biāo)端。

Rsync在每次同步前需要掃描整個(gè)目錄。如果源目錄內(nèi)的文件數(shù)量比較多,掃描可能需要耗費(fèi)較多的時(shí)間。
為了滿足實(shí)時(shí)監(jiān)聽的要求,我們需要引入另一個(gè)工具:inotify。

文件系統(tǒng)事件監(jiān)聽工具inotify

inotify-tools為inotify提供一個(gè)簡(jiǎn)單接口。它是一個(gè)c語(yǔ)言編寫的庫(kù),同時(shí)也包含命令行工具。

inotify-tools的詳細(xì)介紹請(qǐng)點(diǎn)擊: https://github.com/rvoicilas/inotify-tools/wiki

inotify-tools的安裝

對(duì)于centos7系統(tǒng),依次執(zhí)行:

yum install -y epel-release
yum --enablerepo=epel install inotify-tools

使用inotifywait命令進(jìn)行事件監(jiān)聽

監(jiān)聽腳本如下(inotifywait-rsync.sh):

inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f' -e modify,delete,create,attrib /home/paul/rsync/ | while read file
do
rsync -avPz --progress /home/paul/rsync/ 192.168.100.130:/home/paul/rsync/
rsync -avPz --delete /home/paul/rsync/ 192.168.100.130:/home/paul/rsync/
echo "${file} was synchronized"
done

參數(shù)解析

  • -m 保持持續(xù)監(jiān)聽狀態(tài),如果不寫該參數(shù),inotifywait會(huì)在監(jiān)聽到一次事件之后退出。
  • -r 遞歸方式監(jiān)聽目錄。
  • -q 安靜模式,打印輸出較少的內(nèi)容。
  • --timefmt 指定時(shí)間的輸出格式。
  • --format 指定事件輸出的格式。
  • -e 設(shè)置監(jiān)聽的事件類型。這里監(jiān)聽增刪改和metadata的變更。

對(duì)于每次觸發(fā)的監(jiān)聽時(shí)間,inotifywait會(huì)執(zhí)行do和done之間的代碼。在這里,我們調(diào)用之前所說(shuō)的rsync命令進(jìn)行文件同步。

監(jiān)聽腳本加入crontab

crontab -e
* * * * * sh /home/paul/inotifywait-rsync.sh

參考資料
https://rsync.samba.org
https://github.com/rvoicilas/inotify-tools/wiki

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 使用FileZilla從Linux系統(tǒng)下載文件的方法

    使用FileZilla從Linux系統(tǒng)下載文件的方法

    最近做項(xiàng)目,遇到這樣的需求,要求將Linux系統(tǒng)的的某個(gè)文件夾下載到我Windows系統(tǒng)某個(gè)文件夾里,怎么實(shí)現(xiàn)這個(gè)功能呢?下面腳本之家小編給大家?guī)?lái)了使用FileZilla從Linux系統(tǒng)下載文件的方法,感興趣的朋友一起看看吧
    2018-07-07
  • Linux系統(tǒng)中KafKa安裝和使用方法 java客戶端連接kafka過(guò)程

    Linux系統(tǒng)中KafKa安裝和使用方法 java客戶端連接kafka過(guò)程

    這篇文章主要介紹了Linux系統(tǒng)中KafKa安裝和使用方法 java客戶端連接kafka過(guò)程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • Linux運(yùn)維從初級(jí)進(jìn)階為高級(jí)知識(shí)點(diǎn)總結(jié)

    Linux運(yùn)維從初級(jí)進(jìn)階為高級(jí)知識(shí)點(diǎn)總結(jié)

    在本篇文章里小編給大家整理了關(guān)于Linux運(yùn)維從初級(jí)進(jìn)階為高級(jí)知識(shí)點(diǎn)總結(jié)內(nèi)容,需要的為朋友們學(xué)習(xí)下。
    2019-06-06
  • 個(gè)性化修改Linux登錄時(shí)的字符界面

    個(gè)性化修改Linux登錄時(shí)的字符界面

    字符界面操作久了,就沒(méi)有太多的新鮮感,所以加點(diǎn)登錄時(shí)的個(gè)性化顯示,讓心情變的更愉快
    2014-03-03
  • 使用PXE自動(dòng)安裝CentOS7.6的教程詳解

    使用PXE自動(dòng)安裝CentOS7.6的教程詳解

    最近小編遇到這樣的需求:基地新到300臺(tái)服務(wù)器,需要自實(shí)施安裝CentOS7.6版本操作系統(tǒng),選擇使用PXE進(jìn)行批量安裝。這個(gè)需求該如何處理呢,下面腳本之家小編給大家?guī)?lái)了使用PXE自動(dòng)安裝CentOS7.6的教程,感興趣的朋友一起看看吧
    2019-10-10
  • linux touch命令用法實(shí)例

    linux touch命令用法實(shí)例

    在本篇文章里小編給各位整理的是關(guān)于linux touch命令的相關(guān)知識(shí)點(diǎn)內(nèi)容,有需要的朋友們可以參考學(xué)習(xí)下。
    2019-10-10
  • 最完的htaccess文件用法收集整理

    最完的htaccess文件用法收集整理

    最完的htaccess文件用法收集,這篇文章確實(shí)很詳細(xì),需要的朋友可以參考下
    2012-05-05
  • linux下NFS配置教程詳解

    linux下NFS配置教程詳解

    這篇文章主要為大家詳細(xì)介紹了linux下NFS配置教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-04-04
  • 詳解centos7中配置keepalived日志為別的路徑

    詳解centos7中配置keepalived日志為別的路徑

    這篇文章主要介紹了centos7中配置keepalived日志為別的路徑,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-10-10
  • CentOS中yum 源的配置與使用詳解

    CentOS中yum 源的配置與使用詳解

    這篇文章主要介紹了CentOS中yum 源的配置與使用詳解,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。
    2016-12-12

最新評(píng)論