Rsync用于在兩個(gè)遠(yuǎn)程計(jì)算機(jī)之間同步文件和文件夾。它僅通過傳輸源和目標(biāo)之間的差異來提供快速的增量文件傳輸。
Rsync可用于鏡像數(shù)據(jù),增量備份,在系統(tǒng)之間復(fù)制文件,可替代scp
,sftp
和cp
日常等使用的命令。
rsync
命令已預(yù)安裝在大多數(shù)Linux發(fā)行版和macOS??梢赃\(yùn)行命令rsync --version
檢查是否已安裝rysnc,命令將會(huì)打印rysnc的版本號(hào)rsync version 3.01
。
安裝rsync
如果終端提示你bash: command not found: rysnc,說明你的系統(tǒng)沒有安裝rsync??梢允褂冒l(fā)行版的軟件包管理器安裝rysnc。
如果你的計(jì)算機(jī)運(yùn)行的系統(tǒng)是基于Debian的Linux發(fā)行版,例如Ubuntu,Linux mint請(qǐng)運(yùn)行命令sudo apt install rsync
安裝Rsync。
如果你的計(jì)算機(jī)運(yùn)行的系統(tǒng)是基于RedHat的Linux發(fā)行版。例如CentOS,F(xiàn)edora。請(qǐng)運(yùn)行命令sudo yum install rsync
安裝Rsync。
Rsync命令
rsync
語法有三種,分別是本地到本地形式Local to Local,本地到遠(yuǎn)程Local to Remote,遠(yuǎn)程到本地Remote to Local。
其中OPTION
是rsync選項(xiàng)。SRC
是源目錄。DEST
是目標(biāo)目錄。USER
是遠(yuǎn)程用戶名。HOST
是遠(yuǎn)程主機(jī)名名稱,可以是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
提供了許多控制其行為的選項(xiàng)。以下是最經(jīng)常使用的選項(xiàng)。
-a
/--archive
存檔模式,等效于-rlptgoD
。此選項(xiàng)指示rsync
遞歸同步目錄,傳輸特殊設(shè)備和塊設(shè)備,保留符號(hào)鏈接,組,所有權(quán)和權(quán)限等。
-z
/--compress
,此選項(xiàng)將強(qiáng)制rsync
在數(shù)據(jù)發(fā)送給目標(biāo)計(jì)算機(jī)之前對(duì)數(shù)據(jù)進(jìn)行壓縮。
-P
等效于--partial --progress
。使用此選項(xiàng)時(shí),rsync
將在傳輸過程中顯示進(jìn)度條并保留部分傳輸?shù)奈募?。在慢速或不穩(wěn)定的網(wǎng)絡(luò)連接傳輸大文件時(shí)非常有用。
--delete
使用此選項(xiàng)時(shí),rsync
將從目標(biāo)位置刪除相同的文件。適合用于鏡像文件。
-q
/--quiet
此選項(xiàng)禁止顯示非錯(cuò)誤消息。-e
此選項(xiàng)使您可以選擇其他遠(yuǎn)程shell程序。默認(rèn)使用ssh。
Rsync基礎(chǔ)
rysnc最簡(jiǎn)單的用法就是在本地的目錄之間復(fù)制文件。運(yùn)行rysnc命令的用戶必須對(duì)源目錄或者文件具有讀取權(quán)限,并且對(duì)目標(biāo)目錄具有寫入權(quán)限。
如果目標(biāo)參數(shù)未指定文件名,rsync將會(huì)保留原始文件名稱。要使用其它文件名稱保復(fù)制文件,請(qǐng)?jiān)谀繕?biāo)參數(shù)指定文件名。
值得一提的是rsync
命令會(huì)根據(jù)源目錄是否使用斜杠/
,而又不同的處理方式。
如果在源目錄尾部添加斜杠,rsync
會(huì)將目錄的內(nèi)容復(fù)制到目標(biāo)目錄。在省略斜杠,rsync
則會(huì)將源目錄復(fù)制到目標(biāo)目錄。
rsync -a /opt/filename.zip /tmp/newfilename.zip
rsync -a /var/www/domain.com/public_html/ /var/www/domain.com/public_html_backup/
Rsync遠(yuǎn)程同步數(shù)據(jù)
當(dāng)使用rsync
進(jìn)行遠(yuǎn)程傳輸時(shí),rsync必須安裝在源計(jì)算機(jī)和目標(biāo)計(jì)算機(jī)。rsync
默使用SSH作為遠(yuǎn)程shell程序。
如果您尚未為遠(yuǎn)程計(jì)算機(jī)設(shè)置SSH無密碼登錄,rsync
會(huì)要求您輸入用戶名和密碼。遠(yuǎn)程計(jì)算機(jī)SSH服務(wù)監(jiān)聽的端口不是默認(rèn)端口22時(shí),請(qǐng)使用-e
選項(xiàng)指定端口。
當(dāng)傳輸大量數(shù)據(jù)或者大文件時(shí),建議在screen,nohup,tmux運(yùn)行rsync
命令或使用rsync命令的-P
選項(xiàng)。
Rsync 同步本地目錄到遠(yuǎn)程計(jì)算機(jī)
remote_user是遠(yuǎn)程計(jì)算機(jī)的用戶名,remote_host_or_ip遠(yuǎn)程計(jì)算機(jī)的IP地址或者可解釋的域名。
rsync -a /opt/media/ remote_user@remote_host_or_ip:/opt/media/
Rsync 同步遠(yuǎn)程計(jì)算機(jī)目錄到本地目錄
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 后臺(tái)同步數(shù)據(jù)
rsync -a -P remote_user@remote_host_or_ip:/opt/media/ /opt/media/
排除文件和目錄
當(dāng)你要排除文件或目錄時(shí),您需要使用源目錄的相對(duì)路徑。有兩種方式可以排除文件和目錄。
第一種方式是使用rsync
命令的--exclude
選項(xiàng),在命令行指定要排除的文件和目錄。--exclude選項(xiàng)可以重復(fù)使用多次排除多個(gè)文件與目錄。
第二種方式是使用rsync
命令的--exclude-from
選項(xiàng)并指定一個(gè)文件,該文件包含要排除的目錄與文件的路徑。
在以下示例中,排除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
結(jié)論
在本教程中,您學(xué)習(xí)了如何在Linux使用Rsync命令復(fù)制和同步文件和目錄。如有任何疑問,請(qǐng)隨時(shí)發(fā)表評(píng)論。
-
Linux
+關(guān)注
關(guān)注
87文章
11304瀏覽量
209476 -
文件
+關(guān)注
關(guān)注
1文章
566瀏覽量
24742 -
命令
+關(guān)注
關(guān)注
5文章
684瀏覽量
22021
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論