rsync工作原理

2021-10-13 07:21:04 字數 2081 閱讀 4839

rsync 是乙個遠端資料同步工具,可通過 lan/wan 快速同步多台主機間的檔案。rsync 本來是用以取代rcp 的乙個工具,它當前由 rsync.samba.org 維護。rsync 使用所謂的「rsync 演演算法」來使本地和遠端兩個主機之間的檔案達到同步,這個演算法只傳送兩個檔案的不同部分,而不是每次都整份傳送,因此速度相當快。執行 rsync server 的機器也叫 backup server,乙個 rsync server 可同時備份多個 client 的資料;也可以多個rsync server 備份乙個 client 的資料。

rsync 可以搭配 rsh 或 ssh 甚至使用 daemon 模式。rsync server 會開啟乙個873的服務通道(port),等待對方 rsync 連線。連線時,rsync server 會檢查口令是否相符,若通過口令查核,則可以開始進行檔案傳輸。第一次連通完成時,會把整份檔案傳輸一次,下一次就只傳送二個檔案之間不同的部份。

rsync 支援大多數的類 unix 系統,無論是 linux、solaris 還是 bsd 上都經過了良好的測試。此外,它在windows 平台下也有相應的版本,比較知名的有 cwrsync 和 sync2nas。

rsync 的基本特點如下:

可以映象儲存整個目錄樹和檔案系統;

可以很容易做到保持原來檔案的許可權、時間、軟硬鏈結等;

無須特殊許可權即可安裝;

優化的流程,檔案傳輸效率高;

可以使用 rcp、ssh 等方式來傳輸檔案,當然也可以通過直接的 socket 連線;

支援匿名傳輸。

假定在名為 α 和 β 的兩台計算機之間同步相似的檔案 a 與 b,其中 α 對檔案a擁有訪問權,β 對檔案 b 擁有訪問權。並且假定主機 α 與 β 之間的網路頻寬很小。那麼 rsync 演算法將通過下面的五個步驟來完成:

β 將檔案 b 分割成一組不重疊的固定大小為 s 位元組的資料塊。最後一塊可能會比 s 小。

β 對每乙個分割好的資料塊執行兩種校驗:一種是32位的滾動弱校驗,另一種是128位的 md4 強校驗。

β 將這些校驗結果發給 α。

α 通過搜尋檔案 a 的所有大小為 s 的資料塊(偏移量可以任選,不一定非要是 s 的倍數),來尋找與檔案b 的某一塊有著相同的弱校驗碼和強校驗碼的資料塊。這項工作可以借助滾動校驗的特性很快完成。

α 發給 β 一串指令來生成檔案 a 在 β 上的備份。這裡的每一條指令要麼是對檔案 b 經擁有某乙個資料塊而不須重傳的證明,要麼是乙個資料塊,這個資料塊肯定是沒有與檔案 b 的任何乙個資料塊匹配上的。

* 機器a構造filelist,filelist包含了需要與機器b sync的所有檔案資訊對name->id,(id用來唯一表示檔案例如md5);

* 機器a將filelist傳送到機器b;

* 機器b上執行的後台程式處理filelist,構建newfilelist,其中根據md5的比較來刪除機器b上已經存在的檔案的資訊對,只保留機器b上不存在或變化的檔案;

* 機器a得到newfilelist,對newfilelist中的檔案從新傳輸到機器b;

檔案級別的rsync + rsync對單個檔案分塊比較和傳輸 : 實現了檔案的高效傳輸。

如果server上儲存有所有檔案的md5碼索引的資料庫 + hardlink技術 : 實現server的重複檔案刪除,單個檔案只儲存乙份的技術。

如果server有單個檔案只儲存乙份的技術,(有所有檔案的md5資料庫),則在rsync傳輸的過程中只傳輸rsync server沒有的檔案,如果rsync server由此檔案直接使用。

拷貝本地檔案;當src和des路徑資訊都不包含有單個冒號":"分隔符時就啟動這種工作模式。

使用乙個遠端shell程式(如rsh、ssh)來實現將本地機器的內容拷貝到遠端機器。當dst路徑位址包含單個冒號":"分隔符時啟動該模式。

使用乙個遠端shell程式(如rsh、ssh)來實現將遠端機器的內容拷貝到本地機器。當src位址路徑包含單個冒號":"分隔符時啟動該模式。

從遠端rsync伺服器中拷貝檔案到本地機。當src路徑資訊包含"::"分隔符時啟動該模式。

從本地機器拷貝檔案到遠端rsync伺服器中。當dst路徑資訊包含"::"分隔符時啟動該模式。

列遠端機的檔案列表。這類似於rsync傳輸,不過只要在命令中省略掉本地機資訊即可。

簡述hdfs工作原理 HDFS的工作原理

hdfs 的工作原理 hadoop 分布式檔案系統 hdfs 是一種被設計成適合執行在通用硬體上的分布式檔案系統。hdfs 是乙個高度容錯性的系統,適合部署在廉價的 機器上。它能提供高吞吐量的資料訪問,非常適合大規模資料集上的應用。要理解 hdfs 的內部工作原理,首先要理解什麼是分布式 檔案系統。...

mysql nfs原理 nfs工作原理

nfs其最大功能時可以通過網路讓不同作業系統的計算機可以共享資料,所以也可以將其看作時一台檔案伺服器.nfs有屬於自己的協議與使用的埠號,但是在傳送資料或者其他相關資訊時候,nfs伺服器使用乙個稱i 遠端過程呼叫 rpc 的協議來協助nfs伺服器本身的執行 nfs協議 使用nfs,客戶端可以透明地訪...

ajax工作原理,Jsonp原理

ajax工作原理是 相當於在使用者和伺服器之間加了 個中間層 ajax引擎 使使用者操作與伺服器響應非同步化。對於使用者請求ajax引擎會做一些資料驗證和資料處理,不是所有請求都提交給伺服器,當需要從伺服器讀取新資料時由ajax引擎代為向伺服器提交請求。ajax最大優點就是不重新整理整個頁面的前提下...