如何通過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
   下載文件放到該目錄下/usr/src
   #cd /usr/src
   #tar -zxvf inotify-tools-3.14.tar.gz //解壓文件
   #cd inotify-tools-3.14 //進入該文件目錄
   #./configure //主要的作用是對即將安裝的軟件進行配置,檢查當前的環境是否滿足要安裝軟件的依賴關係
   #make //編譯
   #make install //安裝

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
  do
  #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  #生成日誌文件
  done

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
 rsync error: error starting client-server protocol (code 5) at main.c(1522) [receiver=3.0.3]

 原因:
 服務器端該模塊(backup)需要驗證用戶名密碼,但客戶端沒有提供正確的用戶名密碼,認證失敗。
 提供正確的用戶名密碼解決此問題。

 問題三:
 @ERROR: Unknown module ‘backup'
 rsync error: error starting client-server protocol (code 5) at main.c(1522) [receiver=3.0.3]

 原因:
 服務器不存在指定模塊。提供正確的模塊名或在服務器端修改成你要的模塊以解決問題。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章