rsync+inotify實現文件同步更新(配置)

linux下爲了數據安全或者網站同步鏡像,不得不考慮一些實時備份的問題,這篇linux下經過rsync+inotify 實現數據實時備份配置過程記錄下來,防止遺忘配置過程記錄下來,防止遺忘!若有建議技術支持QQ羣555245732 配置架構以下: 


html

本文出處參考:http://www.jbxue.com/article/10493.html
一.安裝步驟(服務器端192.168.0.5)
linux

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 //安裝 bash

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服務端就配置好了,接下來咱們來配置客服端 架構

二.安裝步驟(客服端) post

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的權限配置 
  客服端配置完成! ui

三.若是再配置過程當中出現以下問題,分析出錯緣由。 日誌

 問題一:
 @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]

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

相關文章
相關標籤/搜索