天天看點

如何通過rsync+inotify實作資料的實時備份配置

一.安裝步驟

1) 安裝rsync 點選下載下傳rsync-3.0.9.tar.gz

   下載下傳檔案放到該目錄下/usr/src

   #cd /usr/src

   #tar -zxvf rsync-3.0.9.tar.gz //解壓檔案

   #cd rsync-3.0.9 //進入該檔案目錄

   #./configure //主要的作用是對即将安裝的軟體進行配置,檢查目前的環境是否滿足要安裝軟體的依賴關系

   #make //編譯

   #make install //安裝

2)安裝inotify  點選下載下傳inotify-tools-3.14.tar.gz

   #tar -zxvf inotify-tools-3.14.tar.gz //解壓檔案

   #cd inotify-tools-3.14 //進入該檔案目錄

3)服務端編寫檔案夾監視腳本

  #vi /srv/rsync.sh

  rsync.sh内容如下:

  #!/bin/bash

  src=/srv/test/   #監視改檔案路徑,檔案夾内容發生改變觸發伺服器資料同步

  des=backup       #客服端配置的子產品(客服端會介紹)

  host="192.168.10.6"  #同步到的IP位址,如有多個用空格隔開。例如:host="192.168.10.6 192.168.10.7"

  /usr/local/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f' -e              modify,delete,create,attrib $src | while read files #這邊要主要下inotifywait,隻有Linux 2.6.13 或更高版的才會相容

  do

  for hostip in $host

  #rsync -vzrtopg --delete --progress rsync@$hostip::$des $src --password-file=/etc/rsync.pas 該指令是客服端跟新後同步到伺服器端

  rsync -vzrtopg --delete --progress --password-file=/etc/rsync.pas $src rsync@$hostip::$des #改指令是伺服器端跟新後同步到客服端(看具體使用情況選擇)

#--password-file=/etc/rsync.pas 配置到客服端,也就是用戶端路徑下有rsync.pas 用于配置登陸密碼

#rsync 是用戶端配置的登陸名

  done

  echo "${files} was rsynced" >>/tmp/rsync.log 2>&1  #生成日志檔案

4)啟動nohup

  #nohup /bin/bash /srv/rsync.sh &  //背景不挂斷地運作指令

  #echo "nohup /bin/bash /root/bin/rsync.sh &" >> /etc/rc.local //設定linux伺服器啟動自動啟動nohup

  rsync + inofity服務端就配置好了,接下來我們來配置客服端

二.安裝步驟(客服端)

1) 安裝rsync 步驟如上!

2)配置rsyncd.conf

  #vi /etc/rsyncd.conf //打開rsyncd.conf

  rsyncd.conf内容如下:

  uid = root

  gid = root

  port = 873 #post rsync使用的端口号  也是預設端口号 www.jbxue.com

  hosts allow = 192.168.10.5          #allow hosts ip 應許的ip通路,也可以設定為ip段

  max connections =

  timeout=

  ##config file

  pid file = /var/run/rsyncd.pid

  lock file = /var/run/rsync.lock

  log file = /var/log/rsyncd.log

  #motd file = /etc/rsyncd.motd

  ##global config

  [backup]

  path =/srv/test  #客服端已rsync服務端同步的檔案路徑

  comment = from 192.168.10.5  #解釋

  read only = no

  list = no

  ##client sync config

  auth users =rsync  #配置登陸名稱

  secrets file = /etc/rsync.passwd  #配置使用者名密碼檔案

3)配置rsync.passwd

  #vi /etc/rsync.passwd

  rsync.passwd内容如下:

  rsync:cyc  #rsync登陸使用者名  cyc是登陸密碼 

  #chomd 600 rsync.passwd #需要注意rsync.passwd的權限配置 

  客服端配置完成!

三.如果再配置過程中出現如下問題,分析出錯原因。

 問題一:

 @ERROR: chroot failed

 rsync error: error starting client-server protocol (code 5) at main.c(1522) [receiver=3.0.3]

 原因:

 伺服器端的目錄不存在或無權限,建立目錄并修正權限可解決問題。

 問題二:

 @ERROR: auth failed on module backup

 伺服器端該子產品(backup)需要驗證使用者名密碼,但用戶端沒有提供正确的使用者名密碼,認證失敗。

 提供正确的使用者名密碼解決此問題。

 問題三:

 @ERROR: Unknown module ‘backup'

 伺服器不存在指定子產品。提供正确的子產品名或在伺服器端修改成你要的子產品以解決問題。

本文轉自東方之子736651CTO部落格,原文連結: http://blog.51cto.com/ecloud/1789322,如需轉載請自行聯系原作者

繼續閱讀