Rsync用于在兩個遠程計算機之間同步文件和文件夾。它僅通過傳輸源和目標之間的差異來提供快速的增量文件傳輸。
Rsync可用于鏡像數據,增量備份,在系統(tǒng)之間復制文件,可替代scp
,sftp
和cp
日常等使用的命令。
rsync
命令已預安裝在大多數Linux發(fā)行版和macOS。可以運行命令rsync --version
檢查是否已安裝rysnc,命令將會打印rysnc的版本號rsync version 3.01
。
安裝rsync
如果終端提示你bash: command not found: rysnc,說明你的系統(tǒng)沒有安裝rsync。可以使用發(fā)行版的軟件包管理器安裝rysnc。
如果你的計算機運行的系統(tǒng)是基于Debian的Linux發(fā)行版,例如Ubuntu,Linux mint請運行命令sudo apt install rsync
安裝Rsync。
如果你的計算機運行的系統(tǒng)是基于RedHat的Linux發(fā)行版。例如CentOS,Fedora。請運行命令sudo yum install rsync
安裝Rsync。
Rsync命令
rsync
語法有三種,分別是本地到本地形式Local to Local,本地到遠程Local to Remote,遠程到本地Remote to Local。
其中OPTION
是rsync選項。SRC
是源目錄。DEST
是目標目錄。USER
是遠程用戶名。HOST
是遠程主機名名稱,可以是IP地址或者可解釋的域名。
Local to Local: rsync [OPTION]... [SRC]... DEST
Local to Remote: rsync [OPTION]... [SRC]... [USER@]HOST:DEST
Remote to Local: rsync [OPTION]... [USER@]HOST:SRC... [DEST]
rsync
提供了許多控制其行為的選項。以下是最經常使用的選項。
-a
/--archive
存檔模式,等效于-rlptgoD
。此選項指示rsync
遞歸同步目錄,傳輸特殊設備和塊設備,保留符號鏈接,組,所有權和權限等。
-z
/--compress
,此選項將強制rsync
在數據發(fā)送給目標計算機之前對數據進行壓縮。
-P
等效于--partial --progress
。使用此選項時,rsync
將在傳輸過程中顯示進度條并保留部分傳輸的文件。在慢速或不穩(wěn)定的網絡連接傳輸大文件時非常有用。
--delete
使用此選項時,rsync
將從目標位置刪除相同的文件。適合用于鏡像文件。
-q
/--quiet
此選項禁止顯示非錯誤消息。-e
此選項使您可以選擇其他遠程shell程序。默認使用ssh。
Rsync基礎
rysnc最簡單的用法就是在本地的目錄之間復制文件。運行rysnc命令的用戶必須對源目錄或者文件具有讀取權限,并且對目標目錄具有寫入權限。
如果目標參數未指定文件名,rsync將會保留原始文件名稱。要使用其它文件名稱保復制文件,請在目標參數指定文件名。
值得一提的是rsync
命令會根據源目錄是否使用斜杠/
,而又不同的處理方式。
如果在源目錄尾部添加斜杠,rsync
會將目錄的內容復制到目標目錄。在省略斜杠,rsync
則會將源目錄復制到目標目錄。
rsync -a /opt/filename.zip /tmp/newfilename.zip
rsync -a /var/www/domain.com/public_html/ /var/www/domain.com/public_html_backup/
Rsync遠程同步數據
當使用rsync
進行遠程傳輸時,rsync必須安裝在源計算機和目標計算機。rsync
默使用SSH作為遠程shell程序。
如果您尚未為遠程計算機設置SSH無密碼登錄,rsync
會要求您輸入用戶名和密碼。遠程計算機SSH服務監(jiān)聽的端口不是默認端口22時,請使用-e
選項指定端口。
當傳輸大量數據或者大文件時,建議在screen,nohup,tmux運行rsync
命令或使用rsync命令的-P
選項。
Rsync 同步本地目錄到遠程計算機
remote_user是遠程計算機的用戶名,remote_host_or_ip遠程計算機的IP地址或者可解釋的域名。
rsync -a /opt/media/ remote_user@remote_host_or_ip:/opt/media/
Rsync 同步遠程計算機目錄到本地目錄
rsync -a remote_user@remote_host_or_ip:/opt/media/ /opt/media/
Rsync 指定SSH端口
rsync -a -e "ssh -p 2322" /opt/media/ remote_user@remote_host_or_ip:/opt/media/
Rsync 后臺同步數據
rsync -a -P remote_user@remote_host_or_ip:/opt/media/ /opt/media/
排除文件和目錄
當你要排除文件或目錄時,您需要使用源目錄的相對路徑。有兩種方式可以排除文件和目錄。
第一種方式是使用rsync
命令的--exclude
選項,在命令行指定要排除的文件和目錄。--exclude選項可以重復使用多次排除多個文件與目錄。
第二種方式是使用rsync
命令的--exclude-from
選項并指定一個文件,該文件包含要排除的目錄與文件的路徑。
在以下示例中,排除src_directory
目錄的node_modules
和tmp
目錄,也就是目錄src_directory/node_modules
,src_directory/tmp
。
rsync -a --exclude=node_modules --exclude=tmp /src_directory/ /dst_directory/
rsync -a --exclude-from='/exclude-file.txt' /src_directory/ /dst_directory/
node_modules
tmp
/exclude-file.txt
結論
在本教程中,您學習了如何在Linux使用Rsync命令復制和同步文件和目錄。如有任何疑問,請隨時發(fā)表評論。
-
Linux
+關注
關注
87文章
11351瀏覽量
210499 -
文件
+關注
關注
1文章
571瀏覽量
24834 -
命令
+關注
關注
5文章
697瀏覽量
22126
發(fā)布評論請先 登錄
相關推薦
linux目錄操作命令有哪些?linux基礎入門
Linux目錄的創(chuàng)建與刪除命令
Linux常用命令/查找/搜索命令/壓縮/解壓命令網絡命令
![<b class='flag-5'>Linux</b>常用<b class='flag-5'>命令</b>/查找/搜索<b class='flag-5'>命令</b>/壓縮/解壓<b class='flag-5'>命令</b>網絡<b class='flag-5'>命令</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
評論