兄弟連Linux(二十六)--rsync檔案同步
1、rsync伺服器遠端備份、實時備份
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 用於短期監控,任務完成後再出結果