在開始正式學習rsync以前,咱們先來回答這個問題:rsync是什麼。php
rsync(remote synchronize)是Liunx/Unix下的一個遠程數據同步工具。它可經過LAN/WAN快速同步多臺主機間的文件和目錄,並適當利用rsync算法(差分編碼)以減小數據的傳輸。html
rsync算法並非每一次都整份傳輸,而是隻傳輸兩個文件的不一樣部分,所以其傳輸速度至關快。java
除此以外,rsync可拷貝、顯示目錄屬性,以及拷貝文件,並可選擇性的壓縮以及遞歸拷貝。python
一、客戶端構造FileList,FileList包含了須要與服務器同步的全部文件信息對name->id(id用來惟一表示文件例如MD5)。mysql
二、客戶端將FileList發送到服務器。linux
三、服務器上rsync處理客戶端發過來的FileList,構建新的NewFileList。其中根據MD5值比較,刪除服務器上已經存在的文件信息對,只保留服務器上不存在或變化的文件。web
四、客戶端獲得服務器發送過來的NewFileList,而後把NewFileList中的文件從新傳輸到服務器。算法
rsync有如下幾個優勢:sql
1)能夠鏡像保存整個目錄樹和文件系統。shell
2)能夠很容易作到保持原來文件的權限、時間、軟硬鏈接等。
3)無需特殊權限便可安裝。
4)擁有優化的流程和比較高的文件傳輸效率。
5)可使用shell(rsh、ssh)方式來傳輸文件。
6)支持匿名運行。
7)與scp相比,rsync傳輸速度絕對遠遠超過scp的傳輸速度。
咱們在局域網中常常用rsync和scp傳輸大量mysql數據庫文件,發現rsync傳輸文件速度至少要比scp快20倍以上。
因此若是須要在Liunx/Unix服務器之間互傳海量數據時,建議選擇rsync進行傳輸。
rsync有兩種經常使用的認證方式,一種是rsync-daemon方式,另一種是ssh方式。在平時使用過程,咱們使用最多的是rsync-daemon方式。
注意:在使用rsync時,服務器和客戶端都必須安裝rsync程序。
web1:10.80.11.243
web2:10.80.11.244
code:10.80.11.245
更新code服務器的代碼後,自動同步到web1和web2,刪除code服務器文件,web1和web2也刪除
服務器端的安裝(N臺WEB都這樣配置)
一、首先要求Linux內核在2.6以上,才支持inotify
二、檢查是否安裝rsync軟件
三、新建rsync配置文件,該軟件安裝默認沒有配置文件
注:tongbu爲發佈模塊,至關於路徑的別名
四、啓動服務
其餘的WEB服務器配置和上面是同樣的。若是須要開機啓動,加入到/etc/rc.local
發佈端的配置
一、發佈端主要利用開源軟件sersync,
網站爲:
http://code.google.com/p/sersync/
二、修改配置文件
/var/www/html爲發佈服務器的源碼發佈目錄
主要修改紅色標記部分,密碼文件爲/etc/rsync.pas
三、啓動服務
這種方式常駐進程,若是須要開機啓動,加入到/etc/rc.local
這樣只要修改發佈服務器/var/www/html的文件,web服務器就會自動同步。
全局參數
模塊參數
註釋:下面這些綠色文件是安裝完RSYNC服務後自動生成的文件
原文連接:
https://blog.csdn.net/fclwd/article/details/61191519
識別圖中二維碼,領取python全套視頻資料