1. 程式人生 > >rsync + inotify 實時同步【附送源碼包】

rsync + inotify 實時同步【附送源碼包】

服務器 路徑和 sync 執行權 chm 發生 都是 blog src

項目:
配置Rsync+inotify 實時備份

簡介:
·Rsync:是一個開源的快速備份工具,它可以在不同的主機之間同步整個目錄樹,並且可以保持連接和權限在傳輸前執行壓縮,因此很適用於異地備份、鏡像服務器等應用。主要用於下行同步。
Rsync官網地址是:http://rsync.samba.org

·Inotify:是用來監控文件系統的各種變化,比如:刪除、移動、修改、存取等等。利用這一個功能,可以實現文件異動的警告,這樣有利於工作人員對對其做出相應的動作。
Inotify機制需要安裝inotify-tools。有需要安裝包的朋友訪問https://pan.baidu.com/s/1fls4l4eM0MAXgXccG5rYTw(百度網盤)密碼:n4hd

·Rsync+inotify:這兩個相結合,可以實現實時同步,也就是說,只要原來的位置的文檔發生變化,就立即同步,否則就保持靜默的狀態。
它的好處就可以避免了固定周期性備份存在的延遲、周期過密等問題。主要用於上行同步

部署準備:
·VMware虛擬機
·CentOS 7 IP:192.168.100.60 僅主機模式(同步源)
·CentOS 7-1 IP:192.168.100.70 僅主機模式(發起端)
·inotify-tools安裝包。https://pan.baidu.com/s/1fls4l4eM0MAXgXccG5rYTw(百度網盤)密碼:n4hd
·yum倉庫、gcc、gcc-c++

最終目的
·實現實時同步目錄樹的所有信息

部署開始
·在系統安裝前都已經安裝了rsync,所以我們現在只需要修改其配置文件:
vim /etc/rsyncd.conf //修改rsync主配置文件
技術分享圖片
·創建賬號數據文件:vim /etc/rsyncd_users.db
·因為賬號和密碼都是明文的,所以為了安全我們需要修改文件權限:chmod 600 /etc/rsyncd_users.db
技術分享圖片
·關閉防火墻:systemctl stop firewalld.service
setenforce 0
·開啟rsync守護進程:rsync --daemon
技術分享圖片
·現在可以驗證rsync下行同步。在發起端:CentOS 7-1 執行命令:rsync -avz [email protected]::wwwroot /bbb

技術分享圖片
·在實際工作中,每次同步都需要輸密碼,或者為了後面的實時同步考慮,我們應該寫入同步用戶的密碼,這樣就可以免除人機交互。利於之後寫腳本:vim /etc/server.pass
技術分享圖片
·執行命令:rsync -azv --password-file=/etc/server.pass [email protected]::wwwroot /bbb
跳過密碼驗證,直接同步。

配置rsync+inotify 實時同步
·在發起端安裝inotify-tools。分別執行命令:
1:tar -zxvf inotify-tools-3.14.tar.gz -C /opt/
2:cd /opt/inotify-tools-3.14
3:./configure
4:make && make install

·inotify機制提供了三個調控參數:1、監控時間隊列。2、最多監控實列數。3、每個實例最多監控文件數
修改配置文件:vim /etc/sysctl.conf 修改配置文件後執行命令:sysctl -p
技術分享圖片
·編寫觸發式同步腳本,可以編寫一個腳本:用來檢測本機你自己指定的目錄的變動情況,一旦有更新觸發rsync同步操作,就會上傳至你指定的備份服務器下。
vim /opt/inotify.sh 給予腳本執行權限:chmod +x /opt/inotify.sh
技術分享圖片
·在同步源服務端關閉read only = no

測試:
技術分享圖片
技術分享圖片
技術分享圖片
**同步成功;
實驗結束。

總結:
·主要配置文件的修改,註意路徑。
·註意文件的權限設置
·配置rsync+inotify 實時同步需要修改服務端的read only = no(否則會報錯)
·寫腳本的時候也需要註意路徑和格式**

rsync + inotify 實時同步【附送源碼包】