rsync基本命令和語法

一、概念

Rsync(remote sync)是UNIX 及類UNIX 平臺下一款神奇的數(shù)據(jù)鏡像備份軟件,它不像FTP 或其他文件傳輸服務(wù)那樣需要進行全備份,Rsync 可以根據(jù)數(shù)據(jù)的變化進行差異備份,從而減少數(shù)據(jù)流量,提高工作效率。你可以使用它進行本地數(shù)據(jù)或遠程數(shù)據(jù)的復(fù)制,Rsync 可以使用SSH 安全隧道進行加密數(shù)據(jù)傳輸。Rsync 服務(wù)器端定義源數(shù)據(jù),Rsync 客戶端僅在源數(shù)據(jù)發(fā)生改變后才會從服務(wù)器上實際復(fù)制數(shù)據(jù)至本地,如果源數(shù)據(jù)在服務(wù)器端被刪除,則客戶端數(shù)據(jù)也會被刪除,以確保主機之間的數(shù)據(jù)是同步的。Rsync 使用TCP 873端口。

  • rsync功能
    • 作為命令,實現(xiàn)本地-遠程文件同步
    • 作為服務(wù),實現(xiàn)本地-遠程文件同步
  • rsync特點
    • 可以鏡像保存整個目錄樹和文件系統(tǒng)
    • 可以保留原有的權(quán)限(permission,mode),owner,group,時間(修改時間,modify time),軟硬鏈接,文件acl,文件屬性(attributes)信息等
    • 傳輸效率高,使用同步算法,只比較變化的
    • 支持匿名傳輸,方便網(wǎng)站鏡像;也可以做驗證,加強安全
  • rsync同類服務(wù)
    • sync 同步:刷新文件系統(tǒng)緩存,強制將修改過的數(shù)據(jù)塊寫入磁盤,并且更新超級塊。
    • async 異步:將數(shù)據(jù)先放到緩沖區(qū),再周期性(一般是30s)的去同步到磁盤。
    • rsync 遠程同步:remote synchronous

二、安裝

使用CentOS 7 系統(tǒng)安裝部署Rsync 非常方便,安裝光盤以及YUM 源中都提供了rsync
軟件包,使用YUM 方式安裝即可。

[root@centos7 ~]# yum -y install rsync
[root@centos7 ~]# vim /etc/rsync.conf

三、配置文件詳解

#/etc/rsyncd.conf
#設(shè)置服務(wù)器信息提示文件名稱,在該文件中編寫提示信息
motd file = /etc/rsyncd.motd
#開啟Rsync 數(shù)據(jù)傳輸日志功能
transfer logging = yes
#設(shè)置日志文件名稱,可以通過log format 參數(shù)設(shè)置日志格式
log file =/var/log/rsyncd.log
#設(shè)置Rsync 進程號保存文件名稱
pid file =/var/run/rsyncd.pid
#設(shè)置鎖文件名稱
lock file =/var/run/rsync.lock
#設(shè)置服務(wù)器監(jiān)聽的端口號,默認為873
port = 873
#設(shè)置服務(wù)器所監(jiān)聽網(wǎng)卡接口的IP 地址,這里服務(wù)器IP 地址為192.168.0.254
address = 192.168.0.254
#設(shè)置進行數(shù)據(jù)傳輸時所使用的賬戶名稱或ID 號,默認使用nobody
uid = nobody
#設(shè)置進行數(shù)據(jù)傳輸時所使用的組名稱或GID 號,默認使用nobody
gid = nobody
#設(shè)置user chroot 為yes 后,rsync 會首先進行chroot 設(shè)置,將根映射到path
參數(shù)路徑下,對客戶
#端而言,系統(tǒng)的根就是path 參數(shù)所指定的路徑。但這樣做需要root 權(quán)限,并
且在同步符號
#連接資料時僅會同步名稱,而內(nèi)容將不會同步。
use chroot = no
#是否允許客戶端上傳數(shù)據(jù),這里設(shè)置為只讀。
read only = yes
#設(shè)置并發(fā)連接數(shù),0 代表無限制。超出并發(fā)數(shù)后,如果依然有客戶端連接請
求,則將會收
#到稍后重試的提示消息
max connections = 10
#模塊,Rsync 通過模塊定義同步的目錄,模塊以[name]的形式定義,這與Samba
定義共
#享目錄是一樣的效果。在Rsync 中也可以定義多個模塊
[common]
#comment 定義注釋說明字串
comment = Web content
#同步目錄的真實路徑通過path 指定
path = /common
#忽略一些IO 錯誤
ignore errors
#exclude 可以指定例外的目錄,即將common 目錄下的某個目錄設(shè)置為不同步
數(shù)據(jù)
#exclude = test/

四、rsync三種工作方式

4.1、本地文件系統(tǒng)上實現(xiàn)同步。命令行語法格式為上述"Local"段的格式。
Local:  rsync [OPTION...] SRC... [DEST]
4.2、本地主機使用遠程shell和遠程主機通信。命令行語法格式為上述"Access via remote shell"段的格式。
Access via remote shell:
         Pull: rsync [OPTION...] [USER@]HOST:SRC... [DEST]
         Push: rsync [OPTION...] SRC... [USER@]HOST:DEST
4.3、本地主機通過網(wǎng)絡(luò)套接字連接遠程主機上的rsync daemon。命令行語法格式為上述"Access via rsync daemon"段的格式。
   Access via rsync daemon:
     Pull: rsync [OPTION...] [USER@]HOST::SRC... [DEST]
           rsync [OPTION...] rsync://[USER@]HOST[:PORT]/SRC... [DEST]
     Push: rsync [OPTION...] SRC... [USER@]HOST::DEST
           rsync [OPTION...] SRC... rsync://[USER@]HOST[:PORT]/DEST

前兩者的本質(zhì)是通過管道通信,即使是遠程shell。而方式(3)則是讓遠程主機上運行rsync服務(wù),使其監(jiān)聽在一個端口上,等待客戶端的連接。

但是,通過遠程shell也能臨時啟動一個rsync daemon,這不同于方式(3),它不要求遠程主機上事先啟動rsync服務(wù),而是臨時派生出rsync daemon,它是單用途的一次性daemon,僅用于臨時讀取daemon的配置文件,當(dāng)此次rsync同步完成,遠程shell啟動的rsync daemon進程也會自動消逝。此通信方式的命令行語法格式同"Access via rsync daemon",但要求options部分必須明確指定"--rsh"選項或其短選項"-e"。

五、常用參數(shù)

由于rsync支持一百多個選項,所以此處只介紹幾個常用選項

-a 包含-rtplgoD
-r 同步目錄時要加上,類似cp時的-r選項
-v 同步時顯示一些信息,讓我們知道同步的過程
-l 保留軟連接
-L 加上該選項后,同步軟鏈接時會把源文件給同步
-p 保持文件的權(quán)限屬性
-o 保持文件的屬主
-g 保持文件的屬組
-D 保持設(shè)備文件信息
-t 保持文件的時間屬性
--delete 刪除DEST中SRC沒有的文件
--exclude 過濾指定文件,如--exclude “l(fā)ogs”會把文件名包含logs的文件或者目錄過濾掉,不同步
-P 顯示同步過程,比如速率,比-v更加詳細
-u 加上該選項后,如果DEST中的文件比SRC新,則不同步
-z 傳輸時壓縮

六、示列

6.1、本地傳輸
[root@ansible-server /]# rsync /tmp/ /home/   #將/tmp下所有文件傳輸?shù)?home下
[root@ansible-server /]# rsync /tmp /home/    #將/tmp下所有文件包含文件夾tmp傳輸?shù)?home下
#使用rsync一定要注意的一點是,源路徑如果是一個目錄的話,帶上尾隨斜線和不帶尾隨斜線是不一樣的,不帶尾隨斜線表示的是整個目錄包括目錄本身,帶上尾隨斜線表示的是目錄中的文件,不包括目錄本身。
6.2、從服務(wù)器到本地
[root@ansible-server /]# rsync -r 172.16.3.40:/tmp /tmp  #將遠程服務(wù)器172.16.3.40上的/tmp目錄傳輸?shù)奖镜胤?wù)器/tmp路徑下
6.3、從本地到遠程服務(wù)器
[root@ansible-server /]# rsync -r /tmp 172.16.3.40:/tmp  # 將本地/tmp目錄拷貝到遠程主機172.16.3.40的/tmp下,以保證遠程/tmp目錄和本地/etc保持同步
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容