rsync或遠端同步是類 Unix 系統的軟體實用程式,可高效地在兩臺主機或機器之間同步檔案和目錄。一個是源或本地主機,檔案將從該主機同步,另一個是遠端主機,同步將在該主機上進行。rsync 複製/同步資料的方式基本上有兩種:
- 透過任何遠端 shell(比如ssh、rsh)與另一臺主機複製/同步。
- 使用 TCP 透過 rsync 守護程序進行復制/同步。
Rsync 以其增量傳輸演算法而聞名,該演算法僅複製本地主機中存在的原始檔與目標或遠端主機中現有檔案之間的差異。
例子:
rsync local-file user@remote-host:remote-file
Rsync 首先會使用 SSH 連線到user
遠端主機並要求輸入user's
密碼。連線後,它會呼叫遠端主機的 rsync,然後這兩個程式會確定需要複製本地檔案的哪些部分,以便遠端檔案與本地檔案匹配。請注意 rsync 的以下行為:
- 複製遠端主機上不存在的檔案。
- 已更新的檔案將被同步,rsync 將僅將檔案更改的部分複製到遠端主機。
- 完全相同的檔案不會被複制到遠端主機。
Linux 中 `rsync` 命令的語法
rsync [options] source [destination]
Linux 中 `rsync` 命令的可用選項
選項 |
描述 |
---|---|
a、–存檔 |
這相當於使用-rlptgoD。存檔模式包括所有必要的選項,如遞迴複製檔案、保留幾乎所有內容(如符號連結、檔案許可權、使用者和組所有權以及時間戳)。 |
-v、–詳細 |
預設情況下,rsync 會默默執行。使用單個“-v”選項可提供有關已傳輸檔案的資訊,並在最後提供摘要。新增兩個“-v”選項可提供有關增量傳輸和跳過的檔案的狀態更新,並在最後提供更多資訊。多個“-v”選項通常用於除錯 rsync。 |
-h, –人類可讀的格式 |
以人類可讀的格式輸出。 |
-z,-壓縮 |
在傳輸過程中壓縮檔案資料 |
如果僅指定了源路徑,則源的內容將以類似於的輸出格式列出ls -l
。
rsync foo/
輸出: