1.什麼是Rsync:html
Linux下面開源的,很快,功能不少,能夠實現全量及增量的本地或者遠程數據同步備份的工具。能夠實現本地和遠程的2臺主機之間的數據快速同步,遠程備份。java
區別於scp: Rsync能夠實現本地不一樣分區或目錄的增量的備份,刪除文件和目錄的功能;算法
scp是全量的shell
2.原理centos
默認狀況下,Rsync經過其獨特的"quick check"算法,它僅同步大小或者最後修改時間發生變化的目錄或文件,固然也能夠根據權限,屬主等屬性的變化同步,但須要指定相應的參數,甚至能夠實現只同步一個文件裏有變化的部分安全
3.Rsync的特性服務器
1.保留文件的原來屬性,且支持拷貝特殊文件,如連接文件,設備ssh
2.能夠有排除特定文件或目錄同步的功能,至關於tar --excludesocket
3.不要求必須使用超級用戶權限工具
4.可使用ssh,rcp等方式配合傳輸文件(rsync自己不對數據進行加密)
4. rsync的安裝
# Redhat默認自帶 yum -y install rsync xinetd # 手動安裝
rsync的部分參數
-avz:表示文件的屬性和目錄的屬性不變
-P: 顯示同步的過程 ==>process
-e: 指定通道, -e 'ssh -p 22 '
場景一:rsync客戶端,本地作同步或刪除
特色:本地備份
# Local: rsync [OPTION...] SRC... [DEST] # cp功能: rsync -vaz /etc/hosts /tmp ==>cp /etc/hosts /tmp # rm功能: rsync -avz --delete /null /tmp ==>rm /tmp
場景二:把全部客戶端服務器的數據到備份服務器 -->remote shell
特色:1對1,且須要密碼,須要制定通道(用於加密),不安全,真實用戶登陸
Access via remote shell: Pull: rsync [OPTION...] [USER@]HOST:SRC... [DEST] rsync -avzP -e "ssh -p 22" root@192.168.25.135:/tmp . ==>pull Push: rsync [OPTION...] SRC... [USER@]HOST:DEST rsync -avzP -e "ssh -p 22" ./ root@192.168.25.135:/tmp/ ==>push
場景三:rsync daemon(多對一模式)
特色:多對一
Access via rsync daemon: Pull: rsync [OPTION...] [USER@]HOST::SRC... [DEST] rsync [OPTION...] rsync://[USER@]HOST[:PORT]/SRC... [DEST] Push: rsync [OPTION...] SRC... [USER@]HOST::DEST rsync [OPTION...] SRC... rsync://[USER@]HOST[:PORT]/DEST
【更多參考】 搭建企業級全網數據定時備份方案【cron + rsync】
優勢:
1.增量同步備份,支持socket(daemon模式),集中備份
缺點:
1.大量小文件同步的時候,比對時間比較長,有時候,rsync進程中止(centos6邊比對邊同步)
解決:a.打包同步 b.drdb(文件系統同步複製block ->缺點主節點不斷,備節點不能用 ->解決,寫2份)
2.同步大文件,10G這樣的大文件也有問題,中斷。未完整同步前,是隱藏文件