1. 程式人生 > >兄弟連Linux(二十六)--rsync檔案同步

兄弟連Linux(二十六)--rsync檔案同步

1rsync伺服器遠端備份、實時備份

1.1 關於RSYNC                 

       一款快速增量備份工具

       Remote Sync,遠端同步

       支援本地複製,或者與其他SSH,rsync主機同步

       Rsync(remote synchronize)是一個遠端資料同步工具,可通過LAN/WAN快速同步多臺主機間的檔案,也可以使用Rsync同步本地硬碟中的不同目錄

       Rsync是用於雀帶rcp的一個工具,Rsync使用所謂的“Rsync演算法”來使本地和遠端兩個主機之間的檔案達到同步,這個演算法只傳送兩個檔案的不同部分,而不是每次都整份傳送,因此速度相當快。您可以參考How Rsync Works A Practical Overview進一步瞭解rsync的運作機制。

       Rsync支援大多數的類Unix系統,無論是Linux、Solaris還是BSD上都經過了良好的測試。此外,它在windows平臺下也由相應的版本,比較知名的有cwRsync和SyncNAS

1.2 Rsync特點

       能更新整個目錄和樹的檔案系統

       有選擇的保持符號連結、硬連結、檔案屬於、許可權、裝置以及時間等

       對於安裝來說,無任何特殊許可權要求

       能用rsh、ssh或直接埠作為輸入埠

       支援匿名rsync同步檔案,是理想的映象工具

1.3 同步源和發起端

1.3.1 rsync同步源

       能備份操作的遠端伺服器,也成為備份源

       主要包括兩種:rsync源、SSH源

1.4 命令格式

1.4.1 備份操作型別

本地同步

              rsync … 本地目錄1 本地目錄2

       rsync+ssh同步

              rsync … SSH源 本地目錄          下行同步(下載)

              rsync … 本地目錄 SSH源         上行同步(上傳)

       rsync+rsync同步

              rsync … rsync源 本地目錄         下行同步(下載)

              rsync … 本地目錄 rsync源        上行同步(上傳)

1.4.2 rsync命令的用法

基本格式:

              rsync [選項] 原始位置 目標位置

常用選項

              -a           歸檔模式,遞歸併保留物件屬性,相當於 –rlptgoD

-v           顯示同步過程的詳細(verbose)資訊

-z           在傳輸檔案時進行壓縮(compress)

-H          保留硬連線方式

-A          保留ACL屬性資訊

--delete   刪除目標位置有而原始位置沒有的檔案

-r            遞迴模式,包括目錄及子目錄中所有檔案

-l            對於符號連結檔案仍然複製為符號連結檔案

-p           保留檔案的許可權標記

-t            保留檔案的時間標記

-g           保留檔案的屬組標記(僅限超級使用者使用)

-o           保留檔案的屬主標記(僅限超級使用者使用)

-D          保留裝置檔案及其他特殊檔案

1.5 同步的優缺點

1.5.1 定期同步的不足

       執行備份的時間固定、延遲明顯、實時性差

       當同步源長期不變化時,密集的定期任務是不必要的

1.5.2 實現同步的有點

       一旦同步源出現變化,立即啟動備份

       只要同步源無變化,則不執行備份

2、配置inotify

2.1 Linux核心的inotify機制

從版本2.6.13開始提供

       可以監控檔案系統的變動情況,並作出通知響應

       輔助軟體:inotify-tools

2.2 調整Inotify核心引數

       max_queue_events         監控佇列大小                     16384

       max_user_instances 最多監控例項數                  1024

       max_user_watches         每個例項最多監控檔案數    1048576

2.3 安裝inotify-tools輔助工具

       inotifywait      用於持續監控,實時輸出結果

       inotifywatch   用於短期監控,任務完成後再出結果