linux下通过rsync+inotify 实现数据实时备份(远程容灾备份系统)
本文出處參考:http://www.jbxue.com/article/10493.html
一.安裝步驟(服務器端192.168.0.5)
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]
?原因:
?服務器不存在指定模塊。提供正確的模塊名或在服務器端修改成你要的模塊以解決問題。
轉載于:https://blog.51cto.com/gushiren/1725976
總結
以上是生活随笔為你收集整理的linux下通过rsync+inotify 实现数据实时备份(远程容灾备份系统)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 怎么做fastreport使用离线数据源
- 下一篇: 为什么计算机专业学生要学Linux系统?