命令:rsync負責數據同步的的命令,可以從本地到本地進行同步,也可以實現遠程同步。本地同步實現本地的兩個目錄同步。遠程同步包括兩種方式:可以通過ssh利用遠程shell腳本完成同步,也可以利用rsync進程自身完成,遠程同步包含兩種方向,Pull和Push。其中Pull是從遠程拉取到本地,Push是從本地推送到遠程。
基本命令格式爲:
rsync [options] src dest
其中src爲源地址,dest爲目的地址,以下目錄中都以黃色標記源地址,綠色標記目的地址。
一、本地同步
rsync [OPTION...] SRC... [DEST]
從本地的SRC目錄中同步數據到本地DEST目錄,如果缺失表示同步數據到當前Shell工作目錄。
二、通過遠程shell完成同步
1. Pull
rsync [OPTION...] [USR@]HOST:SRC... [DEST]
2. Push
rsync [OPTION...] SRC... [USER@]HOST:DEST
解釋:
通過遠程Shell完成同步,src和dest地址中有且只有一個爲遠程地址,另一個地址爲本地地址。遠程地址形式爲[USR@]HOST:ADDR表示遠程地址。其中USR@可選,HOST必選(表示遠程主機地址),HOST和ADDR之間用單個冒號":"隔開表示的是通過遠程shell同步。其中ADDR表示的是源或者目標主機上的目錄地址。
1)如果src爲該類型地址,那麼dest則是本地地址(可選),則表示利用遠程(HOST含義)shell(冒號含義)同步數據到本地dest(或者shell工作目錄),則是Pull(拉取)。
2)如果src爲本地地址,dest爲該類型地址,則是表示從本地src推送數據到遠程(HOST含義),利用shell(冒號)完成數據推送,則是Push(推送)。
三、通過rsync進程來實現同步
1. Pull
rsync [OPTION...] [USR@]HOST::SRC... [DEST]
rsync [OPTION...] rsync://[USR@]HOST[:PORT]/SRC... [DEST]
2.Push
rsync [OPTION...] SRC... [USR@]HOST::[DEST]
rsync [OPTION...] SRC... rsync://[USER@]HOST[:PORT]/DEST
解釋:
通過rsync進程本身來實現同步數據,src和dest中有且只有一個爲遠程地址,另一個爲本地地址。遠程地址格式包含兩種格式:
1)[USR@]HOST::ADDR
2) rsync://[USR@]HOST[:PORT]/ADDR
HOST都是表示了遠程地址,第一種格式用雙冒號"::"表示是利用rsync進程自身完成同步,區別了單冒號":"。第二種格式類似於URL的方式,在[:PORT]中設定端口。ADDR都是目錄地址。
1)同樣如果src地址爲遠程地址(兩種格式的一種),dest爲目標地址,同步遠程到本地。表示Pull拉取。
2)如果src是本地地址,dest爲遠程地址,同步本地到遠程。則表示Push(推送)。
四、總結:
rsync指令根據地址中有誤遠程地址分爲本地同步和遠程同步兩種。其中遠程同步src和dest中一個爲遠程地址,一個爲本地地址。在遠程同步中,按照遠程地址的類型分爲三種:
1)[USR@]HOST:ADDR
2) [USR@]HOST::ADDR
3) rsync://[USR@]HOST[:PORT]
。地址中都包含HOST字段,表示是遠程地址。遠程同步可以從兩個維度劃分:
1. 按照同步方式(手段)劃分:
前面三種遠程地址,第一種表示通過遠程shell完成同步(單個冒號區分),後面兩種表示利用rsync進程自身來實現同步(通過雙冒號區分、通過URL地址區分)。
2. 按照同步類型劃分:
如果src是遠程地址,則是Pull(拉取),如果dest是遠程地址則Push(推送)。