您好,登錄后才能下訂單哦!
一臺裝sersync、一臺裝rsync服務
sersync服務器(數據源,源機器):192.168.0.63
rsync客戶端(備份端,目標機器):192.168.0.64
1. 為什么要用rsync+sersync架構?
(1) sersync是基于inotify開發的,類似于inotify-tools的工具。
(2) sersync可以記錄下被監聽目錄中發生變化的(包括增加、刪除、修改)具體某一個文件或者某一個目錄的名字,然后使用rsync同步的時候,只同步發生變化的文件或者目錄。
2. rsync+inotify-tools與rsync+sersync架構的區別?
(1) rsync+inotify-tools
1) inotify只能記錄下被監聽的目錄發生了變化(增,刪,改)并沒有把具體是哪個文件或者哪個目錄發生了變化記錄下來。
2) rsync在同步的時候,并不知道具體是哪個文件或目錄發生了變化,每次都是對整個目錄進行同步,當數據量很大時,整個目錄同步非常耗時(rsync要對整個目錄遍歷查找對比文件),因此效率很低。
(2) rsync+sersync
1) sersync可以記錄被監聽目錄中發生變化的(增,刪,改)具體某個文件或目錄的名字。
2) rsync在同步時,只同步發生變化的文件或目錄(每次發生變化的數據相對整個同步目錄數據來說很小,rsync在遍歷查找對比文件時,速度很快),因此效率很高。
3. 同步過程:
(1) 在同步服務器上開啟sersync服務,sersync負責監控配置路徑中的文件系統事件變化。
(2) 調用rsync命令把更新的文件同步到目標服務器。
(3) 需要在主服務器配置sersync,在同步目標服務器配置rsync server(注意:是rsync服務)。
4. 同步過程和原理:
(1) 用戶實時的往sersync服務器上寫入更新文件數據。
(2) 此時需要在同步主服務器上配置sersync服務。
(3) 在另一臺服務器開啟rsync守護進程服務,以同步拉取來自sersync服務器上的數據。
(4) 在另一臺服務器開啟rsync守護進程服務,使sersync push文件過來。
通過rsync的守護進程服務后可以發現,實際上sersync就是監控本地的數據寫入或更新事件,然后,在調用rsync客戶端的命令,將寫入或更新事件對應的文件通過rsync推送到目標服務器,如圖 2-3 所示。
圖2-3 同步過程示意圖
1.在google code下載sersync的可執行文件版本,里面有配置文件與可執行文件
wget https://sersync.googlecode.com/files/sersync2.5.4_64bit_binary_stable_final.tar.gz(有時下載失敗,所有要本地留存一份)
2.上傳到服務器 /opt目錄下。
[root@xuegod63 ~]# cd /opt #切換工作目錄到/opt目錄下。
[root@xuegod63 opt]# tar xvf sersync2.5.4_64bit_binary_stable_final.tar.gz #解壓。
[root@xuegod63 opt]# mv GNU-Linux-x86 sersync #解壓后的文件重命名為sersync。
[root@xuegod63 opt]# cd sersync #切換工作目錄至sersync目錄下。
[root@xuegod63 sersync]# cp confxml.xml confxml.xml.bak #備份配置文件,便于二次修改
1. 更改優化sersync配置文件:
[root@xuegod63 sersync]# vim confxml.xml #修改配置文件中的24--28行,如下所示。
<sersync>
<localpath watch="/var/www/html"> #本地同步數據目錄。
<remote ip="192.168.0.64" name="wwwroot"/> #rsync模塊名稱
2. 修改31--34行,認證部分(rsync密碼認證)。
<rsync>
<commonParams params="-artuz"/>
<auth start="true" users="rsyncuser" passwordfile="/etc/rsync.passwd"/>
<userDefinedPort start="false" port="874"/><!-- port=874 -->
<timeout start="false" time="100"/><!-- timeout=100 -->
<ssh start="false"/>
3. 開啟sersync守護進程同步數據。
[root@xuegod63 sersync]# /opt/sersync/sersync2 -d -r -o /opt/sersync/confxml.xml
圖 2-4 開啟sersync守護進程
4. 測試
(1) 在63 /var/www/html/ 目錄 增加、刪除、或改目錄文件。
(2) 看64 /web-back 目錄的變化
[root@xuegod64 web-back]# watch ls -l
5. 設置sersync監控開機自動執行
[root@xuegod63 sersync]# vi /etc/rc.d/rc.local #編輯rc.local文件,在最后添加一行。
/opt/sersync/sersync2 -d -r -o /opt/sersync/confxml.xml #設置開機自動運行腳本。
6. 添加腳本監控sersync是否正常運行
[root@xuegod63 ~]# vi /opt/check_sersync.sh #編輯腳本,添加以下代碼。
#!/bin/sh
sersync="/opt /sersync/sersync2"
confxml="/opt /sersync/confxml.xml"
status=$(ps aux |grep 'sersync2'|grep -v 'grep'|wc -l)
if [ $status -eq 0 ];
then
$sersync -d -r -o $confxml &
else
exit 0;
fi
[root@xuegod63 ~]# chmod +x /opt /check_sersync.sh #添加腳本執行權限。
把這個腳本加到任務計劃,定期執行檢測。
有興趣學習Linux云計算架構師的可以關注我!
我給大家推薦一些入門學習資料,都是些經典的學習資料!
CCNA 網絡基礎課程
http://edu.51cto.com/sd/3ee4c
Linux centos7 最新版的基礎學習視頻 請比對蘑菇丁的課程如果大綱一致就不要購買了!
http://edu.51cto.com/sd/d572a
python3 函數編程入門
http://edu.51cto.com/sd/dd128
WEB開發工程師 JavaScript全民你飛機大戰游戲開發視頻課程
http://edu.51cto.com/sd/c6223
如果你基礎學習的比較好可以嘗試了解一下Linux Docker虛擬化及Kubernetes容器集群管理
http://edu.51cto.com/sd/480b1
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。