Rsync(remote sync)是UNIX及類UNIX平台下一款神奇的資料鏡像備份軟體,它不像FTP或其他檔案傳輸服務那樣需要進行全備份,Rsync可以根據資料的變化進行差異備份,進而減少資料流量,提高工作效率。你可以使用它進行本地資料或遠端資料的複制,Rsync可以使用SSH安全隧道進行加密資料傳輸。Rsync伺服器端定義源資料,Rsync用戶端僅在源資料發生改變後才會從伺服器上實際複制資料至本地,如果源資料在伺服器端被删除,則用戶端資料也會被删除,以確定主機之間的資料是同步的。Rsync使用TCP 873端口。
<a href="https://s4.51cto.com/wyfs02/M02/98/C0/wKioL1k_9ybgigKwAADF-r8pFbY850.png" target="_blank"></a>
使用CentOS 7系統安裝部署Rsync非常友善,安裝CD光牒以及YUM源中都提供了rsync軟體包,使用YUM方式安裝即可。下面的案例示範了如何共享/common目錄,為此,我們需要建立/common目錄,并複制一些測試檔案存放在該目錄下。本例需要手動建立配置檔案/etc/rsync.conf,該檔案具體的文法格式在後面有詳細的描述。
[root@centos7 ~]# yum -y install rsync
[root@centos7 ~]# mkdir /common; cp /etc/init.d/* /common/
[root@centos7 ~]# vim /etc/rsync.conf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
<code>#/etc/rsyncd.conf</code>
<code>#設定伺服器資訊提示檔案名稱,在該檔案中編寫提示資訊</code>
<code>motd </code><code>file</code> <code>= </code><code>/etc/rsyncd</code><code>.motd</code>
<code>#開啟Rsync資料傳輸日志功能</code>
<code>transfer logging = </code><code>yes</code>
<code>#設定日志檔案名稱,可以通過log format參數設定日志格式</code>
<code>log </code><code>file</code> <code>=</code><code>/var/log/rsyncd</code><code>.log</code>
<code>#設定Rsync程序号儲存檔案名稱</code>
<code>pid </code><code>file</code> <code>=</code><code>/var/run/rsyncd</code><code>.pid</code>
<code>#設定鎖檔案名稱</code>
<code>lock </code><code>file</code> <code>=</code><code>/var/run/rsync</code><code>.lock</code>
<code>#設定伺服器監聽的端口号,預設為873</code>
<code>port = 873</code>
<code>#設定伺服器所監聽網卡接口的IP位址,這裡伺服器IP位址為192.168.0.254</code>
<code>address = 192.168.0.254</code>
<code>#設定進行資料傳輸時所使用的賬戶名稱或ID号,預設使用nobody</code>
<code>uid = nobody</code>
<code>#設定進行資料傳輸時所使用的組名稱或GID号,預設使用nobody</code>
<code>gid = nobody</code>
<code>#設定user chroot為yes後,rsync會首先進行chroot設定,将根映射到path參數路徑下,對客戶</code>
<code>#端而言,系統的根就是path參數所指定的路徑。但這樣做需要root權限,并且在同步符号</code>
<code>#連接配接資料時僅會同步名稱,而内容将不會同步。</code>
<code>use chroot = no</code>
<code>#是否允許用戶端上傳資料,這裡設定為隻讀。</code>
<code>read</code> <code>only = </code><code>yes</code>
<code>#設定并發連接配接數,0代表無限制。超出并發數後,如果依然有用戶端連接配接請求,則将會收</code>
<code>#到稍後重試的提示消息</code>
<code>max connections = 10</code>
<code>#子產品,Rsync通過子產品定義同步的目錄,子產品以[name]的形式定義,這與Samba定義共</code>
<code>#享目錄是一樣的效果。在Rsync中也可以定義多個子產品</code>
<code>[common]</code>
<code>#comment定義注釋說明字串</code>
<code>comment = Web content</code>
<code>#同步目錄的真實路徑通過path指定</code>
<code>path = </code><code>/common</code>
<code>#忽略一些IO錯誤</code>
<code>ignore errors</code>
<code>#exclude可以指定例外的目錄,即将common目錄下的某個目錄設定為不同步資料</code>
<code>#exclude = test/</code>
<code>#設定允許連接配接伺服器的賬戶,賬戶可以是系統中不存在的使用者</code>
<code>auth </code><code>users</code> <code>= tom,jerry</code>
<code>#設定密碼驗證檔案名稱,注意該檔案的權限要求為隻讀,建議權限為600,僅在設定auth users</code>
<code>#參數後有效</code>
<code>secrets </code><code>file</code> <code>= </code><code>/etc/rsyncd</code><code>.secrets</code>
<code>#設定允許哪些主機可以同步資料,可以是單個IP,也可以是網段,多個IP與網段之間使用空</code>
<code>#格分隔</code>
<code>hosts allow=192.168.0.0</code><code>/255</code><code>.255.255.0</code>
<code>#設定拒絕所有(除hosts allow定義的主機外)</code>
<code>hosts deny=*</code>
<code>#用戶端請求顯示子產品清單時,本子產品名稱是否顯示,預設為true</code>
<code>list= </code><code>false</code>
接下來,通過echo的方式建立密碼檔案/etc/rsyncd.secrets,在該檔案中輸入兩個賬戶:tom賬戶的密碼是pass,jerry賬戶的密碼是111。需要注意的是,密碼檔案不可以對所有的人開放可讀權限,為了安全,建議設定權限為600。建立伺服器提示資訊檔案并向該檔案中導入歡迎詞。由于Rsync預設不是開機啟動服務,為了實作開機啟動Rsync服務,我們可以通過echo将rsync --daemon追加至開機啟動檔案/etc/rc.local。最後通過設定防火牆開啟873端口的入站資料請求。
[root@centos7 ~]# echo "tom:pass" > /etc/rsyncd.secrets
[root@centos7 ~]# echo "jerry:111" >> /etc/rsyncd.secrets
[root@centos7 ~]# chmod 600 /etc/rsyncd.secrets
[root@centos7 ~]# echo “welcome to access” >/etc/rsyncd.motd
[root@centos7 ~]# rsync --daemon
[root@centos7 ~]# echo “/usr/bin/rsync --daemon” >> /etc/rc.local
[root@centos7 ~]# firewall-cmd --permanent --add-port=873/tcp
#添加防火牆規則,允許873端口的資料通路
用戶端同步資料
現在讓我們開始同步資料吧,在用戶端主機中同樣是使用rsync指令進行初始化資料傳輸,使用同樣的程式,但用戶端主機不需要--daemon選項。
[root@centos7 ~]# rsync-vzrtopg --progress [email protected]::common /test
本文轉自丁丁曆險51CTO部落格,原文連結:http://blog.51cto.com/manual/1935165 ,如需轉載請自行聯系原作者