rsync能夠實現觸發式的文件同步,可是經過crontab守護進程方式進行觸發,同步的數據和實際數據會有差別,而inotify能夠監控文件系統的各類變化,當文件有任何變更時,就觸發rsync同步,這樣就能夠解決同步數據的實時性問題。rsync+inotify我在工做中會常常用到,你們部署這種時請注意如下方面:
服務器
1、rsync服務器的uid和gid請將nobody:nobody改成www:www,由於是考慮到咱們的Nginx服務器是由www:www運行的,而其對應目錄不少時候有寫日誌或其它相關寫文件的需求。
負載均衡
2、/data/htdocs/www目錄對於www用戶而言是須要寫權限的,因此記得運行以下命令:
ide
chown -R www:www /data/htdocs/www。測試
另外工做中rsync+inotify的優勢和缺點也總結了下,以下:
ui
rsync+inotify的優點所在:spa
1、部署和維護都比較簡單,因爲數據都部署在Web應用服務器上面,較之單一NFS文件服務器而言沒有磁盤I/O壓力大的問題,緣由很簡單:來自客戶端大量對圖片及數據的訪問需求,都分散在負載均衡器後面的N臺Web應用服務器上面了。
日誌
2、改動較大的程序,在正式發佈上線以前能夠拿其中一臺Web應用服務器做爲線上的測試服務器,這樣較之發佈之後再版本回退帶來的損失較小。進程
rsync+inotify其缺點也比較明顯:
crontab
1、rsync+inotify在同步大文件效果明顯不如小文件方面好;圖片
2、在對線上機器進行巡查時,發現rsync+inotify在內存佔用方面比較多,16G內存的機器可以使用內存老是寥寥無幾(CentOS系統內存的實際使用值一直都是5365左右),以前一直覺得是內存泄露的問題,最後經重重排查,發現確實是rsync+inotify的緣由。
其部署安裝方面詳見PDF附件。