Linux中的Rsync命令示例

rsync 是一種快速且通用的命令行實用程序,用於通過遠程外殼或從遠程Rsync守護程序來回同步兩個位置之間的文件和目錄。 它僅通過傳輸源和目標之間的差異來提供快速的增量文件傳輸。

Rsync可用於鏡像數據,增量備份,在系統之間複製文件,並可替代 scpsftpcp 命令。

本文介紹了如何使用 rsync 通過實際示例和最常見的詳細說明 rsync 選項。

安裝Rsync#

rsync 該實用程序已預先安裝在大多數Linux發行版和macOS上。 如果沒有 rsync 安裝在系統上,您可以使用發行版的程序包管理器輕鬆安裝它。

在Ubuntu和Debian上安裝Rsync#

sudo apt install rsync

在CentOS和Fedora上安裝Rsync#

sudo yum install rsync

Rsync命令語法

在進入如何使用之前 rsync 命令,讓我們先回顧一下基本語法。

rsync 實用程序表達式採用以下形式:

Local to Local:  rsync [OPTION]... [SRC]... DEST
Local to Remote: rsync [OPTION]... [SRC]... [[email protected]]HOST:DEST
Remote to Local: rsync [OPTION]... [[email protected]]HOST:SRC... [DEST]
  • OPTION -rsync選項。
  • SRC -源目錄。
  • DEST -目標目錄。
  • USER -遠程用戶名。
  • HOST -遠程主機名或IP地址。

rsync 提供了許多選項來控制命令的行為。 最廣泛使用的選項是:

  • -a--archive,存檔模式,相當於 -rlptgoD。 這個選項告訴 rsync 遞歸同步目錄,傳輸特殊設備和塊設備,保留符號鏈接,修改時間,組,所有權和權限。
  • -z--compress。 此選項強制 rsync 在將數據發送到目標計算機時對其進行壓縮。 僅當與遠程計算機的連接速度較慢時才使用此選項。
  • -P, 相當於 --partial --progress。 使用此選項時, rsync 在傳輸過程中顯示進度條,並保留部分傳輸的文件。 通過慢速或不穩定的網絡連接傳輸大文件時很有用。
  • --delete。 使用此選項時, rsync 從目標位置刪除無關的文件。 這對於鏡像很有用。
  • -q--quiet。 如果要禁止顯示非錯誤消息,請使用此選項。
  • -e。 此選項使您可以選擇其他遠程外殼。 默認, rsync 配置為使用ssh。

Rsync基本用法

最基本的用例 rsync 是將單個文件從一個文件複製到另一個本地位置。 這是一個例子:

rsync -a /opt/filename.zip /tmp/

運行該命令的用戶必須對源位置具有讀取權限,而對目標必須具有寫入權限。

從目標位置省略文件名將複製具有當前名稱的文件。 如果要使用其他名稱保存文件,請在目標部分指定新名稱:

rsync -a /opt/filename.zip /tmp/newfilename.zip

的真正力量 rsync 在同步目錄時出現。 下面的示例顯示了如何創建網站文件的本地備份:

rsync -a /var/www/domain.com/public_html/ /var/www/domain.com/public_html_backup/

如果目標目錄不存在, rsync 將創建它。

值得一提的是 rsync 給源目錄以斜杠(/)。 如果源目錄帶有斜杠,該命令將僅將目錄內容複製到目標目錄。 如果省略了斜杠, rsync 將源目錄複製到目標目錄中。

使用 rsync 與/從遠程計算機同步數據

使用時 rsync 要遠程傳輸數據,必須將其同時安裝在源計算機和目標計算機上。 新版本 rsync 配置為使用SSH作為默認遠程Shell。

在以下示例中,我們將目錄從本地轉移到遠程計算機:

rsync -a /opt/media/ [email protected]_host_or_ip:/opt/media/

如果您尚未設置無密碼的SSH登錄到遠程計算機,則將要求您輸入用戶密碼。

要將數據從遠程傳輸到本地計算機,請使用遠程位置作為源:

rsync -a [email protected]_host_or_ip:/opt/media/ /opt/media/

如果遠程主機上的SSH正在偵聽默認端口22以外的端口,請使用 -e 選項:

rsync -a -e "ssh -p 2322" /opt/media/ [email protected]_host_or_ip:/opt/media/

傳輸大量數據時,建議運行 rsync 屏幕會話中的命令或使用 -P 選項:

rsync -a -P [email protected]_host_or_ip:/opt/media/ /opt/media/

排除文件和目錄

有兩個選項可以排除文件和目錄。 第一種選擇是使用 --exclude 參數,並在命令行上指定要排除的文件和目錄。

當排除文件或目錄時,您需要使用它們到源位置的相對路徑。

在以下示例中,顯示了如何排除 node_modulestmp 目錄:

rsync -a --exclude=node_modules --exclude=tmp /src_directory/ /dst_directory/

第二種選擇是使用 --exclude-from 選項並指定要排除在文件中的文件和目錄。

rsync -a --exclude-from='/exclude-file.txt' /src_directory/ /dst_directory/

/exclude-file.txt

node_modules
tmp

結論#

我們已經向您展示了如何使用Rsync複製和同步文件和目錄。 在“ Rsync用戶手冊”頁面上,還有很多關於Rsync的知識。

如有任何疑問,請隨時發表評論。

rsync終端

Sidebar