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]
緣由: 服務器不存在指定模塊。提供正確的模塊名或在服務器端修改爲你要的模塊以解決問題。