麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 服務器 > Linux服務器 > 正文

Linux服務器間文件實時同步的實現

2024-09-05 23:05:23
字體:
來源:轉載
供稿:網友

使用場景

現有服務器A和服務器B,如果服務器A的指定目錄(例如 /home/paul/rsync/ )中的內容發生變更(增刪改和屬性變更),實時將這些變更同步到服務器B的目標目錄中(例如 /home/paul/rsync/ )。

數據鏡像備份工具Rsync

Rsync是一個非常快速和靈活的文件復制工具。它支持本機或者是和遠程服務器間的文件復制。Rsync使用了delta-transfer算法,它只需要傳送源端和目標端的文件差異部分,大大減少了網絡帶寬的消耗和復制耗費的時間。Rsync多用于數據備份和鏡像。

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

Rsync連接遠程主機有兩種方式:使用ssh或rsync daemon。這里使用Rsync方式來實現遠程文件備份。

Rsync的安裝與操作

安裝Rsync

分別在服務器A和服務器B的terminal執行:

sudo yum install rsync

安裝完畢后,會發現rsync的配置文件位于 etc/rsyncd.conf 。該文件使用daemon方式同步時需要使用,此處暫不介紹。

配置服務器A和B之間的免密登錄

服務器A執行:

ssh-keygenssh-copy-id 服務器B的IP地址

創建源端目錄和目標端目錄

在服務器A中:

mkdir /home/paul/rsync

在服務器B中:

mkdir /home/paul/rsync

在服務器A創建測試文件

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

執行文件傳送命令

在服務器A運行:

# (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

會發現在demo.txt也出現在了服務器B中/home/paul/rsync目錄。

命令解析:

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

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

Rsync存在的問題

Rsync僅是一個文件復制工具,它無法對源端文件的增刪改操作進行監聽。在源端做出更改后,需要執行rsync命令才能將變更同步到目標端。

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

文件系統事件監聽工具inotify

inotify-tools為inotify提供一個簡單接口。它是一個c語言編寫的庫,同時也包含命令行工具。

inotify-tools的詳細介紹請點擊: https://github.com/rvoicilas/inotify-tools/wiki

inotify-tools的安裝

對于centos7系統,依次執行:

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

使用inotifywait命令進行事件監聽

監聽腳本如下(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 filedorsync -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

參數解析

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

對于每次觸發的監聽時間,inotifywait會執行do和done之間的代碼。在這里,我們調用之前所說的rsync命令進行文件同步。

監聽腳本加入crontab

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

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

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。


注:相關教程知識閱讀請移步到服務器教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 看免费毛片 | 久章草在线观看 | 国产精品久久国产精麻豆96堂 | 欧美日韩专区国产精品 | 意大利av在线 | 日日鲁一鲁视频 | 欧美日韩免费一区 | 日韩视频在线观看免费 | 国产精品久久久久久久久久久久久久久 | 欧美大屁股精品毛片视频 | 一级毛片真人免费播放视频 | 7777网站| 日韩欧美电影一区二区三区 | 斗破苍穹在线免费 | 久久精国| 精品一区二区三区中文字幕 | 羞羞的视频 | 国产精品高潮视频 | 免费激情网站 | 久久成人在线观看 | 国产91精品久久久 | 国产一区二区视频精品 | 俄罗斯hdxxx 日夜操天天干 | 亚洲人成网在线观看 | 久久最新免费视频 | 二区三区四区视频 | 九一免费在线观看 | 舌头伸进添的我好爽高潮网站 | 嗯~啊~弄嗯~啊h高潮视频 | 91短视频免费 | 国产一区二区在线免费播放 | 日本a v免费观看 | 欧美日韩精品一区二区三区不卡 | 精品久久久久久久久久久久包黑料 | 国产成人精品一区二区视频免费 | 亚洲日本高清 | 欧美成人一区二区三区 | 看免费黄色一级片 | 日韩精品久久久 | 日本精品久久久一区二区三区 | 99麻豆久久久国产精品免费 |