色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

多臺Linux主機進行數據同步,少不了這款工具!

dyquk4xk2p3d ? 來源:良許Linux ? 2023-04-20 09:55 ? 次閱讀

	

	


	


	

	


	

	

	

	

	

一、簡介

1 認識

Rsync(remote synchronize)是一個遠程數據同步工具,可通過LAN/WAN快速同步多臺主機間的文件。Rsync使用所謂的“Rsync算法”來使本地和遠 程兩個主機之間的文件達到同步,這個算法只傳送兩個文件的不同部分,而不是每次都整份傳送,因此速度相當快;Rsync支持大多數的類Unix系統,無論是Linux、Solaris還是BSD上都經過了良好的測試;此外,它在windows平臺下也有相應的版本,如cwRsync和Sync2NAS等工具

2 原理

Rsync本來是用于替代rcp的一個工具,目前由rsync.samba.org維護,所以rsync.conf文件的格式類似于samba的主配 置文件;

Rsync可以通過rsh或ssh使用,也能以daemon模式去運行 在以daemon方式運行時Rsync server會打開一個873 端口,等待客戶端去連接。

連接時,Rsync server會檢查口令是否相符,若通過口令查核,則可以開始進行文件傳輸。第一次連通完成時,會把整份文件傳輸一次,以后則就只需進行增量備份。

3 特點

  1. 可以鏡像保存整個目錄樹和文件系統;
  2. 可以很容易做到保持原來文件的權限、時間、軟硬鏈接等;
  3. 無須特殊權限即可安裝;
  4. 優化的流程,文件傳輸效率高;
  5. 可以使用rsh、ssh等方式來傳輸文件,當然也可以通過直接的socket連接;
  6. 支持匿名傳輸

二、ssh模式

1 本地間同步

環境:172.16.22.12


	
#mkdirsrc
#touchsrc/{1,2,3,4}
#mkdirdest
#rsync-avsrc/dest/--將src目錄里的所有的文件同步至dest目錄(不包含src本身)
#rsync-avsrcdest/--將src目錄包括自己整個同步至dest目錄
#rsync-avRsrc/dest/--即使src后面接有/,效果同上

2、局域網間同步

環境:172.16.22.11


	
#mkdirsrc
#touchsrc/{a,b,c,d}
#mkdirdest
#rsync-av172.16.22.12:/data/test/src/dest/--遠程同步至本地,需輸入root密碼
#rsync-avsrc/172.16.22.12:/data/test/dest/--本地文件同步至遠程
#rsync-avsrc172.16.22.12:/data/test/dest/--整個目錄同步過去
#rm-rfsrc/d--刪除一個文件d
#rsync-av--deletesrc/172.16.22.12:/data/test/dest/--delete,從目標目錄里面刪除無關的文件

3、局域網指定用戶同步

—172.16.22.12


	
#useraddgeorge
#passwdgeorge
#mkdir/home/george/test
#touch/home/george/test/g{1,2,3,4}

—172.16.22.11


	
#rsync-avsrc'-essh-lgeorge'172.16.22.12:/home/george--本地同步至遠程
#rsync-av172.16.22.12:/home/george/test/g*'-essh-lgeorge-p22'dest/

三、daemon模式

環境:192.168.22.11

1、服務啟動方式

1.1、對于負荷較重的 rsync 服務器應該使用獨立運行方式

	
#yuminstallrsyncxinetd--服務安裝
#/usr/bin/rsync--daemon
1.2、對于負荷較輕的 rsync 服務器可以使用 xinetd 運行方式

	
#yuminstallrsyncxinetd--服務安裝
#vim/etc/xinetd.d/rsync--配置托管服務,將下項改為no
disable=no
#/etc/init.d/xinetdstart--啟動托管服務xinetd
#chkconfigrsyncon
#netstat-ntpl|grep873--查看服務是否啟動

2、配置詳解

兩種 rsync 服務運行方式都需要配置 rsyncd.conf,其格式類似于 samba 的主配置文件

全局參數

  • 在全局參數部分也可以定義模塊參數,這時該參數的值就是所有模塊的默認值
  • address —在獨立運行時,用于指定的服務器運行的 IP 地址;由 xinetd 運行時將忽略此參數,使用命令行上的 –address 選項替代。默認本地所有IP
  • port —指定 rsync 守護進程監聽的端口號。由 xinetd 運行時將忽略此參數,使用命令行上的 –port 選項替代。默認 873
  • motd file —指定一個消息文件,當客戶連接服務器時該文件的內容顯示給客戶
  • pid file —rsync 的守護進程將其 PID 寫入指定的文件
  • log file —指定 rsync 守護進程的日志文件,而不將日志發送給 syslog
  • syslog facility —指定 rsync 發送日志消息給 syslog 時的消息級別
  • socket options —指定自定義 TCP 選項
  • lockfile —指定rsync的鎖文件存放路徑
  • timeout = 600 —超時時間

模塊參數

模塊參數主要用于定義 rsync 服務器哪個目錄要被同步。模塊聲明的格式必須為 [module] 形式,這個名字就是在 rsync 客戶端看到的名字,類似于 Samba 服務器提供的共享名。而服務器真正同步的數據是通過 path 來指定的

基本模塊參數

  • path —指定當前模塊在 rsync 服務器上的同步路徑,該參數是必須指定的

  • comment —給模塊指定一個描述,該描述連同模塊名在客戶連接得到模塊列表時顯示給客戶

模塊控制參數

  • use chroot = —默認為 true,在傳輸文件之前首先 chroot 到 path 參數所指定的目錄下;優點,安全;缺點,需要 root 權限,不能備份指向 path 外部的符號連接所指向的目錄文件

  • uid = —指定該模塊以指定的 UID 傳輸文件;默認nobody

  • gid = —指定該模塊以指定的 GID 傳輸文件;默認nobody

  • max connections —最大并發連接數,0為不限制

  • lock file —指定支持 max connections 參數的鎖文件。默認 /var/run/rsyncd.lock

  • list —指定當客戶請求列出可以使用的模塊列表時,該模塊是否應該被列出。默認為 true,顯示

  • read only = —只讀選擇,也就是說,不讓客戶端上傳文件到服務器上。默認true

  • write only = —只寫選擇,也就是說,不讓客戶端從服務器上下載文件。默認false

  • ignore errors —忽略IO錯誤。默認true

  • ignore nonreadable —指定 rysnc服務器完全忽略那些用戶沒有訪問權限的文件。這對于在需要備份的目錄中有些不應該被備份者獲得的文件時是有意義的。false

  • timeout = —該選項可以覆蓋客戶指定的 IP 超時時間。從而確保 rsync 服務器不會永遠等待一個崩潰的客戶端。對于匿名 rsync 服務器來說,理想的數字是 600(單位為秒)。0 (未限制)

  • dont compress —用來指定那些在傳輸之前不進行壓縮處理的文件。該選項可以定義一些不允許客戶對該模塊使用的命令選項列表。必須使用選項全名,而不能是簡稱。當發生拒絕某個選項的情況時,服務器將報告錯誤信息然后退出。例如,要防止使用壓縮,應該是:”dont compress =”。.gz.tgz.zip.z.rpm.deb.iso.bz2.tbz

模塊文件篩選參數

  • exclude —指定多個由空格隔開的多個文件或目錄(相對路徑),并將其添加到 exclude 列表中。這等同于在客戶端命令中使用 –exclude 來指定模式

  • exclude from —指定一個包含 exclude 規則定義的文件名,服務器從該文件中讀取 exclude 列表定義

  • include —指定多個由空格隔開的多個文件或目錄(相對路徑),并將其添加到 include 列表中。這等同于在客戶端命令中使用 –include 來指定模式

  • include from —指定一個包含 include 規則定義的文件名,服務器從該文件中讀取 include 列表定義

模塊用戶認證參數

  • auth users —指定由空格或逗號分隔的用戶名列表,只有這些用戶才允許連接該模塊(和系統用戶沒有任何關系)。用戶名和口令以明文方式存放在 secrets file 參數指定的文件中。默認為匿名方式
  • secrets file —指定一個 rsync 認證口令文件。只有在 auth users 被定義時,該文件才起作用。文件權限必須是 600
  • strict modes —指定是否監測口令文件的權限。為 true 則口令文件只能被 rsync 服務器運行身份的用戶訪問,其他任何用戶不可以訪問該文件。默認為true

模塊訪問控制參數

  • hosts allow —用一個主機列表指定哪些主機客戶允許連接該模塊。不匹配主機列表的主機將被拒絕。默認值為 *
  • hosts deny —用一個主機列表指定哪些主機客戶不允許連接該模塊

模塊日志參數

  • transfer logging —使 rsync 服務器將傳輸操作記錄到傳輸日志文件。默認值為false

  • log format —指定傳輸日志文件的字段。默認為:”%o %h [%a] %m (%u) %f %l”
    設置了”log file”參數時,在日志每行的開始會添加”%t [%p]“;
    可以使用的日志格式定義符如下所示:
    %o —操作類型:”send” 或 “recv”
    %h —遠程主機名
    %a —遠程IP地址
    %m —模塊名
    %u —證的用戶名(匿名時是 null)
    %f —文件名
    %l —文件長度字符數
    %p —該次 rsync 會話的 PID
    %P —模塊路徑
    %t —當前時間
    %b —實際傳輸的字節數
    %c —當發送文件時,記錄該文件的校驗碼

3、服務端配置


	
#vim/etc/rsyncd.conf--為rsyncd服務編輯配置文件,默認沒有,需自己編輯
  • uid = root —rsync運行權限為root

  • gid = root —rsync運行權限為root

  • use chroot = no —是否讓進程離開工作目錄

  • max connections = 5 —最大并發連接數,0為不限制

  • timeout = 600 —超時時間

  • pid file = /var/run/rsyncd.pid —指定rsync的pid存放路徑

  • lockfile = /var/run/rsyncd.lock —指定rsync的鎖文件存放路徑

  • log file = /var/log/rsyncd.log —指定rsync的日志存放路徑

  • [web1] —模塊名稱
    path = /data/test/src —該模塊存放文件的基礎路徑
    ignore errors = yes —忽略一些無關的I/O錯誤
    read only = no —客戶端可以上傳
    write only = no —客戶端可以下載
    hosts allow = 192.168.22.12 —允許連接的客戶端主機ip
    hosts deny =—黑名單,表示任何主機
    list = yes
    auth users = web —認證此模塊的用戶名
    secrets file = /etc/web.passwd —指定存放“用戶名:密碼”格式的文件


	
#mkdir/data/test/src--創建基礎目錄
#mkdir/data/test/src/george--再創建一個目錄
#touch/data/test/src/{1,2,3}
#echo"web:123">/etc/web.passwd--創建密碼文件
#chmod600/etc/web.passwd
#servicexinetdrestart

四、測試

1、客戶端

環境:192.168.22.12


	
#yum-yinstallrsync
#mkdir/data/test

2、小試參數


	
# rsync -avzP web@192.168.22.11::web1 /data/test/--輸入密碼 123;將服務器 web1 模塊里的文件同步至/data/test,參數說明:

-a —參數,相當于-rlptgoD,
-r —是遞歸
-l —是鏈接文件,意思是拷貝鏈接文件
-i —列出 rsync 服務器中的文件
-p —表示保持文件原有權限
-t —保持文件原有時間
-g —保持文件原有用戶組
-o —保持文件原有屬主
-D —相當于塊設備文件
-z —傳輸時壓縮
-P —傳輸進度
-v —傳輸時的進度等信息,和-P有點關系


	
#rsync-avzP--deleteweb@192.168.22.11::web1/data/test/--讓客戶端與服務器保持完全一致,--delete
#rsync-avzP--delete/data/test/web@192.168.22.11::web1--上傳客戶端文件至服務端
#rsync-avzP--delete/data/test/web@192.168.22.11::web1/george--上傳客戶端文件至服務端的george目錄
#rsync-ir--password-file=/tmp/rsync.passwordweb@192.168.22.11::web1--遞歸列出服務端web1模塊的文件
#rsync-avzP--exclude="*3*"--password-file=/tmp/rsync.passwordweb@192.168.22.11::web1/data/test/--同步除了路徑以及文件名中包含“3”*的所有文件

3、通過密碼文件同步


	
#echo"123">/tmp/rsync.password
#chmod600/tmp/rsync.password
#rsync-avzP--delete--password-file=/tmp/rsync.passwordweb@192.168.22.11::web1/data/test/--調用密碼文件

4、客戶端自動同步


	
#crontab-e

10 0* rsync -avzP —delete —password-file=/tmp/rsync.password web@192.168.22.11::web1 /data/test/


	
#crontab-l

五、數據實時同步

環境:Rsync + Inotify-tools

1、inotify-tools

  • 是為linux下 inotify文件監控工具提供的一套c的開發接口庫函數,同時還提供了一系列的命令行工具,這些工具可以用來監控文件系統的事件

  • inotify-tools是用c編寫的,除了要求內核支持 inotify 外,不依賴于其他

  • inotify-tools提供兩種工具:一是inotifywait,它是用來監控文件或目錄的變化,二是inotifywatch,它是用來統計文件系統訪問的次數

2、安裝inotify-tools

下載地址:http://github.com/downloads/rvoicilas/inotify-tools/inotify-tools-3.14.tar.gz


	
#yuminstall–ygcc--安裝依賴
#mkdir/usr/local/inotify
#tar-xfinotify-tools-3.14.tar.gz
#cdinotify-tools-3.14
#./configure--prefix=/usr/local/inotify/
#make&&makeinstall

3、設置環境變量


	
#vim/root/.bash_profile

export PATH=/usr/local/inotify/bin/:$PATH


	
#source/root/.bash_profile
#echo'/usr/local/inotify/lib'>>/etc/ld.so.conf--加載庫文件
#ldconfig
#ln-s/usr/local/inotify/include/usr/include/inotify

4、常用參數

  • -m —始終保持監聽狀態,默認觸發事件即退出

  • -r —遞歸查詢目錄

  • -q —打印出監控事件

  • -e —定義監控的事件,可用參數:

  • access —訪問文件

  • modify —修改文件

  • attrib —屬性變更

  • open —打開文件

  • delete —刪除文件

  • create —新建文件

  • move —文件移動

  • —fromfile —從文件讀取需要監視的文件或者排除的文件,一個文件一行,排除的文件以@開頭

  • —timefmt —時間格式

  • —format —輸出格式

  • —exclude —正則匹配需要排除的文件,大小寫敏感

  • —excludei —正則匹配需要排除的文件,忽略大小寫

  • %y%m%d %H%M —年月日時鐘

  • %T%w%f%e —時間路徑文件名狀態

5、測試一

檢測源目錄中是否有如下動作:modify,create,move,delete,attrib;

一旦發生則發布至目標機器;

方式為 ssh
src: 192.168.22.11(Rsync + Inotify-tools) dest: 192.168.22.12

兩臺機器需要做好 ssh 免密登錄


	
#mdkir/data/test/dest/--dest機器
#mdkir/data/test/src/--src機器
#rsync-av--delete/data/test/src/192.168.22.12:/data/test/dest--測試下命令
#vim/data/test/test.sh
#!/bin/bash
/usr/local/inotify/bin/inotifywait-mrq-emodify,create,move,delete,attrib/data/test/src|whilereadevents
do
rsync-a--delete/data/test/src/192.168.22.12:/data/test/dest
echo"`date +'%F %T'`出現事件:$events">>/tmp/rsync.log2>&1
done
#chmod755/data/test/test.sh
#/data/test/test.sh&
#echo'/data/test/test.sh&'>>/etc/rc.local--設置開機自啟

我們可以在目標機上也寫一個這樣的腳本:

rsync-a—delete/data/test/dest/192.168.22.11:/data/test/src ;

這樣可以實現雙向同步。


審核編輯 :李倩


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 算法
    +關注

    關注

    23

    文章

    4615

    瀏覽量

    92979
  • Linux
    +關注

    關注

    87

    文章

    11312

    瀏覽量

    209702
  • 局域網
    +關注

    關注

    5

    文章

    754

    瀏覽量

    46298

原文標題:多臺 Linux 主機進行數據同步,少不了這款工具!

文章出處:【微信號:良許Linux,微信公眾號:良許Linux】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    STM32作為主機,通過SPI進行數據交互,發送數據的時候出現亂碼怎么解決?

    我們使用ESP32-pico-mini與STM32DIY一款電子產品。使用ESP32做從機,STM32作為主機,通過SPI進行數據交互,當時鐘頻率為40MHz時,從STM32到ESP32傳輸音頻數據
    發表于 06-12 06:20

    【FPGA參賽作品】用fpga模擬IIC總線并與外部設備進行數據交流

    題目: 用FPGA模擬IIC總線工作,并通過總線與外部設備進行數據交流IIC總線 是早期由飛利浦公司制定的用于連接嵌入式主機多臺外設的串行總線標準,其特點是連線簡單,只需兩根線---SCL、SDA
    發表于 05-16 16:08

    淺析Linux同步網絡時間

    Linux服務器運行久時,系統時間就會存在一定的誤差,一般情況下可以使用date命令進行時間設置,但在做數據庫集群分片等操作時對多臺機器的時間差是有要求的,此時就需要使用ntpdate
    發表于 07-25 06:07

    簡述主機與外設進行數據交換的幾種常用方式

    在8086的微計算機系統中,存儲器是如何組織的?是如何與處理器總線連接的?BHE信號起什么作用?簡述主機與外設進行數據交換的幾種常用方式?
    發表于 09-27 06:49

    Linux中監控多臺主機

    如果你想要以快速且粗略地在局域網中一次監控多臺主機,你可能需要了解一下 “rwho” 工具。只要安裝了 rwho 實用程序,它將立即快速地監控本地和遠程系統。
    的頭像 發表于 05-07 09:48 ?3770次閱讀

    工業4.0,少不了惡劣環境連接器來幫忙!

    工業4.0,少不了惡劣環境連接器來幫忙!
    的頭像 發表于 07-02 15:30 ?2372次閱讀

    Ftrans文件同步系統與傳統同步工具相比有說明區別

    隨著企業結構分散化的不斷擴大,企業內部和企業間的信息互動更加頻繁。越來越多的企業要求內部各種業務數據多臺服務器之間、多個數據中心之間,乃至多云和本地之間調度和同步。很多企業會選擇一些
    的頭像 發表于 11-03 10:10 ?4389次閱讀

    Rsync遠程數據同步工具簡介

    Rsync(remote synchronize)是一個遠程數據同步工具,可通過LAN/WAN快速同步多臺
    的頭像 發表于 09-16 09:13 ?1088次閱讀

    Rsync遠程數據同步工具介紹

    Rsync(remote synchronize)是一個遠程數據同步工具,可通過LAN/WAN快速同步多臺
    的頭像 發表于 09-23 10:32 ?1057次閱讀

    Rsync遠程數據同步工具簡介

    Rsync(remote synchronize)是一個遠程數據同步工具,可通過LAN/WAN快速同步多臺
    的頭像 發表于 10-12 09:12 ?922次閱讀

    如何實現多臺Linux主機進行數據同步

    Rsync本來是用于替代rcp的一個工具,目前由rsync.samba.org維護,所以rsync.conf文件的格式類似于samba的主配 置文件;
    發表于 04-20 09:51 ?665次閱讀

    Linux環境遠程數據同步的實現方案

    Rsync(remote synchronize)是一個遠程數據同步工具,可通過LAN/WAN快速同步多臺
    發表于 10-12 14:54 ?352次閱讀

    linux備份還原工具有哪些?

    Linux備份還原工具是用于在Linux系統上進行數據備份和還原操作的軟件或工具。它們提供了一種簡單、有效和可靠的方式來保護
    的頭像 發表于 11-23 10:06 ?1557次閱讀

    日均快遞超5億,這屆618智慧物流少不了

    日均快遞超5億,這屆618智慧物流少不了
    的頭像 發表于 06-18 08:24 ?301次閱讀
    日均快遞超5億,這屆618智慧物流<b class='flag-5'>少不了</b>它

    多臺變頻器同步控制的接線和方法

    多臺變頻器同步控制是指通過一定的控制策略和方法,實現多臺變頻器在運行過程中的同步運行,以滿足生產過程中對速度、位置、轉矩等參數的精確控制需求。 多臺
    的頭像 發表于 08-25 10:20 ?1871次閱讀
    主站蜘蛛池模板: 免费精品在线视频| 午夜影视不充值观看| 中文字幕亚洲第一| 男人J放进女人屁股免费观看| sihu国产精品永久免费| 青青国产在线观看视频| 国产成人高清精品免费观看 | 欧美人成人亚洲专区中文字幕| 扒开黑女人p大荫蒂老女人| 少妇仑乱A毛片| 九九99亚洲精品久久久久| 99久久精品国产亚洲AV| 日本中文字幕伊人成中文字幕| 国产精品夜夜春夜夜爽久久小| 一个人色导航| 日本女人下面毛茸茸| 國産麻豆AVMDMD0179| adc网址在线观看| 亚洲精品视频免费看| 欧美视频 亚洲视频| 国产中的精品AV一区二区| 中文日产无乱码AV在线观| 三级电影免费看| 久久亚洲精品永久网站| 国产成人精品视频| 51国产午夜精品免费视频| 无敌在线视频观看免费| 免费特黄一区二区三区视频一| 国产精品九九久久精品视| 777EY_卡通动漫_1页| 亚洲 综合 欧美在线视频| 欧美人与动牲交A免费| 精品国产成a人在线观看| 高h乱np甄宓| 99久久99久久精品| 亚洲三级在线中文字幕| 日本无翼恶漫画大全优优漫画| 久久亚洲免费视频| 国产在线aaa片一区二区99| 成人中文字幕在线观看| 5566精品资源在线播放|