天天看點

RHEL7建構Rsync資料同步伺服器

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" &gt; /etc/rsyncd.secrets

[root@centos7 ~]# echo "jerry:111" &gt;&gt; /etc/rsyncd.secrets

[root@centos7 ~]# chmod 600 /etc/rsyncd.secrets

[root@centos7 ~]# echo “welcome to access” &gt;/etc/rsyncd.motd

[root@centos7 ~]# rsync --daemon

[root@centos7 ~]# echo “/usr/bin/rsync --daemon” &gt;&gt; /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 ,如需轉載請自行聯系原作者

繼續閱讀