多臺服務器下同步文件夾數據(rsync+inotify)

網上有不少講解rsync+inotify的教程,我就先貼出一個來你們去看吧,基本都是相似的。web

http://www.jb51.net/article/57011.htm數據庫

我就強調幾點,按照上面的方法配置完後基本上會出現 防火牆的錯誤,須要打開873端口號bash

命令,2種方式的命令:服務器

  1. iptables -A INPUT -p tcp --dport 873 -j ACCEPT   注意:沒裝firewall的請使用此命令
  2. firewall-cmd --zone=public --add-port=873/tcp --permanent 注意:裝了firewall的請使用此命令,執行完這句後須要重啓防火牆firewall-cmd --reload

須要特別注意的是若是是阿里雲的服務器須要在公網入方向和公網出方向將873端口加進去。tcp

還有按照上面的配置鐵定會出現一個錯誤,那就是服務端配置文件第7行出現的一個錯誤:測試

/usr/local/inotify/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f%e' -e modify,delete,create,attrib
$src \ | while read files 阿里雲

看好了,這個是以前那位文章的做者故意寫錯的仍是咋地,$src \ | while read files將這句話裏的 \ 給去掉就行了spa

上面是我本機服務端的配置文件,rsync.sh.net

順便說一句,服務端的正確打開方式:3d

root@iZ2zed4mlmnhkespizriyiZ:/home/wwwroot# sh /home/wwwroot/rsync.sh &

查看是否啓動成功:

root@iZ2zed4mlmnhkespizriyiZ:/home/wwwroot# ps -ef|grep rsync
root     15767 15443  0 15:57 pts/1    00:00:00 sh ./rsync.sh
root     15769 15767  0 15:57 pts/1    00:00:00 sh ./rsync.sh
root     15882 15443  0 16:41 pts/1    00:00:00 grep rsync

按照教程走,大致流程都不會錯,其實配置也很簡單,服務端該裝的裝完,配置文件配好,就開始作客戶端的事情了,客戶端更簡單,只須要安裝一個rsync便可

詳細步驟能夠參閱鏈接的文檔,這裏講一下還會踩到的坑,記住客戶端的密碼文件必定要給600的權限,不然就會拋錯:

@ERROR: auth failed on module XXX

http://blog.csdn.net/learnhard/article/details/5542765

 可參考此篇文章解決此錯誤。

客戶端權限也須要看好  建議將服務端和客戶端的auth users = webuser該成auth users = root

基本上注意上述我講的幾點,你就能夠成功,最後發一下成果圖吧

服務端:

客戶端:

數據已同步,只要有新文件就能夠同步過來。不過仍是有一些小瑕疵,按照以前博文教程上來說「主服務器裏刪除文件的時候,備份服務器裏不跟着刪除文件,我查看了不少英文文檔,測試了不少遍,最後找到了一個解決方法,那就是在主服務器裏,把rsync.sh這個腳本里第9行的--delete參數給去掉,就能夠解決這個問題」 這句話純屬放屁,我已經將--delete去掉了 仍是無論用的,具體如何才能實現將備份數據庫的文件刪除,這個等我找到解決方案必定會貼出來的。

相關文章
相關標籤/搜索