rsync用法及引數詳解

2022-07-20 10:51:10 字數 1602 閱讀 6593

rsync的目的是實現本地主機和遠端主機上的檔案同步(包括本地推到遠端,遠端拉到本地兩種同步方式),也可以實現本地不同路徑下檔案的同步,但不能實現遠端路徑1到遠端路徑2之間的同步(scp可以實現)。

不考慮rsync的實現細節,就檔案同步而言,涉及了原始檔和目標檔案的概念,還涉及了以哪邊檔案為同步基準。例如,想讓目標主機上的檔案和本地檔案保持同步,則是以本地檔案為同步基準,將本地檔案作為原始檔推送到目標主機上。反之,如果想讓本地主機上的檔案和目標主機上的檔案保持同步,則目標主機上的檔案為同步基準,實現方式是將目標主機上的檔案作為原始檔拉取到本地。當然,要保持本地的兩個檔案相互同步,rsync也一樣能實現,這就像linux中cp命令一樣,以本地某檔案作為源,另一檔案作為目標檔案,但請注意,雖然rsync和cp能達到相同的目的,但它們的實現方式是不一樣的。

既然是檔案同步,在同步過程中必然會涉及到源和目標兩檔案之間版本控制的問題,例如是否要刪除源主機上沒有但目標上多出來的檔案,目標檔案比原始檔更新(newer than source)時是否仍要保持同步,遇到軟鏈結時是拷貝軟鏈結本身還是拷貝軟鏈結所指向的檔案,目標檔案已存在時是否要先對其做個備份等等。

rsync同步過程中由兩部分模式組成:決定哪些檔案需要同步的檢查模式以及檔案同步時的同步模式。

(1).檢查模式是指按照指定規則來檢查哪些檔案需要被同步,例如哪些檔案是明確被排除不傳輸的。預設情況下,rsync使用"quick check"演算法快速檢查原始檔和目標檔案的大小、mtime(修改時間)是否一致,如果不一致則需要傳輸。當然,也可以通過在rsync命令列中指定某些選項來改變quick check的檢查模式,比如"--size-only"選項表示"quick check"將僅檢查檔案大小不同的檔案作為待傳輸檔案。rsync支援非常多的選項,其中檢查模式的自定義性是非常有彈性的。

(2).同步模式是指在檔案確定要被同步後,在同步過程發生之前要做哪些額外工作。例如上文所說的是否要先刪除源主機上沒有但目標主機上有的檔案,是否要先備份已存在的目標檔案,是否要追蹤鏈結檔案等額外操作。rsync也提供非常多的選項使得同步模式變得更具彈性。

相對來說,為rsync手動指定同步模式的選項更常見一些,只有在有特殊需求時才指定檢查模式,因為大多數檢查模式選項都可能會影響rsync的效能。

rsync 的命令格式(用法)為:

1

)本地使用:

rsync [option...] src... [dest] 2

)通過遠端 shell 使用:

拉: rsync [option...] [user@]host:src... [dest]

推: rsync [option...] src... [user@]host:dest 3

)訪問 rsync 伺服器:

拉: 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

其中:摘自:

rsync引數詳解

選項說明 v,verbose 詳細模式輸出 q,quiet 精簡輸出模式 c,checksum 開啟校驗開關,強制對檔案傳輸進行校驗 a,archive 歸檔模式,表示以遞迴方式傳輸檔案,並保持所有檔案屬性,等於 rlptgod r,recursive 對子目錄以遞迴模式處理 r,relative ...

rsync引數詳解

v,verbose 詳細模式輸出。q,quiet 精簡輸出模式。c,checksum 開啟校驗開關,強制對檔案傳輸進行校驗。a,archive 歸檔模式,表示以遞迴方式傳輸檔案,並保持所有檔案屬性,等於 rlptgod。r,recursive 對子目錄以遞迴模式處理。r,relative 使用相對路...

rsync引數詳解

選項說明 v,verbose 詳細模式輸出 q,quiet 精簡輸出模式 c,checksum 開啟校驗開關,強制對檔案傳輸進行校驗 a,archive 歸檔模式,表示以遞迴方式傳輸檔案,並保持所有檔案屬性,等於 rlptgod r,recursive 對子目錄以遞迴模式處理 r,relative ...