定義
rsync 是一個(gè)快速的,通用的遠(yuǎn)程及本地文件同步工具蜻拨。它通過增量傳輸
算法池充,僅發(fā)傳送源文件和目標(biāo)中的差異部分,來減少通過網(wǎng)絡(luò)發(fā)送的數(shù)據(jù)量缎讼,因此速度相當(dāng)快收夸。
在 LInux 中常用的遠(yuǎn)程同步方式有 rsync 和 scp 兩種。scp 采用的是全量更新的方式血崭,rsync 采用的是增量更新卧惜。當(dāng)目標(biāo)文件不存在時(shí),兩者的速度相差不大夹纫,甚至 scp 不怎么占資源咽瓷,理論上 rsync 在這種場景下并沒有優(yōu)勢(shì)。另外一個(gè)差異就是舰讹,scp 是加密傳輸?shù)拿┙瑀sync 則不是。
主要特點(diǎn)
rsync 有兩種使用方式月匣,一是通過命令的方式钻洒,其使用方法和 cp奋姿、scp 無異;另一種是作為服務(wù)來使用素标,通過 rsync 服務(wù)器端為基礎(chǔ)進(jìn)行數(shù)據(jù)鏡像同步称诗。搭建 rsync下服務(wù)本文不做介紹,有興趣的讀者可自行查閱头遭。下面就是官方文檔中介紹的關(guān)于rsync的幾大優(yōu)點(diǎn):
- 可以鏡像保存整個(gè)目錄樹和文件系統(tǒng)寓免;
- 可以很容易做到保持原來文件的權(quán)限、時(shí)間计维、軟硬鏈接袜香;無須特殊權(quán)限即可安裝;
- 可以增量同步數(shù)據(jù)享潜,文件傳輸效率高困鸥,因而同步時(shí)間短嗅蔬;
- 可以使用rcp剑按、ssh 等方式來傳輸文件,當(dāng)然也可以通過直接的 socket 連接澜术;
- 支持匿名傳輸艺蝴,以方便進(jìn)行網(wǎng)站鏡像等;
語法
# 本地使用
rsync [OPTION] … SRC DEST
# 通過遠(yuǎn)程 Shell 使用
推:rsync [OPTION] … SRC [user@]host:DEST
拉:rsync [OPTION] … [user@]host:SRC DEST
# 訪問 rsync 服務(wù)
拉: rsync [OPTION…] [USER@]HOST::SRC… [DEST]
推: rsync [OPTION…] SRC… [USER@]HOST::DEST
拉: rsync [OPTION…] rsync://[USER@]HOST[:PORT]/SRC… [DEST]
推: rsync [OPTION…] SRC… rsync://[USER@]HOST[:PORT]/DEST
選項(xiàng)
-a 包含-rtplgoD
-r 同步目錄時(shí)要加上鸟废,類似cp時(shí)的-r選項(xiàng)
-v 同步時(shí)顯示一些信息猜敢,讓我們知道同步的過程
-l 保留軟連接
-L 加上該選項(xiàng)后,同步軟鏈接時(shí)會(huì)把源文件給同步
-p 保持文件的權(quán)限屬性
-o 保持文件的屬主
-g 保持文件的屬組
-D 保持設(shè)備文件信息
-t 保持文件的時(shí)間屬性
--delete 刪除DEST中SRC沒有的文件
--exclude 過濾指定文件盒延,如--exclude “l(fā)ogs”會(huì)把文件名包含logs的文件或者目錄過濾掉缩擂,不同步
-P 顯示同步過程,比如速率添寺,比-v更加詳細(xì)
-u 加上該選項(xiàng)后胯盯,如果DEST中的文件比SRC新,則不同步
-z 傳輸時(shí)壓縮
常見用法
本地磁盤同步數(shù)據(jù)
rsync -a --delete /etc/ /www/
基于ssh的rsync遠(yuǎn)程同步數(shù)據(jù)(推)
rsync -av /etc [root@192.168.249.135](mailto:root@192.168.249.135):/www/