Linux中的Rsync命令示例
rsync
是一種快速且通用的命令行實用程序,用於通過遠程外殼或從遠程Rsync守護程序來回同步兩個位置之間的文件和目錄。 它僅通過傳輸源和目標之間的差異來提供快速的增量文件傳輸。
Rsync可用於鏡像數據,增量備份,在系統之間複製文件,並可替代 scp
, sftp
和 cp
命令。
本文介紹了如何使用 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_modules
和 tmp
目錄:
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終端