1、sersync是基于Inotify開發的,類似于Inotify-tools的工具
2、sersync可以記錄下被監聽目錄中發生變化的(包括增加、删除、修改)具體某一個檔案或某一個目錄的名字,然後使用rsync同步的時候,隻同步發生變化的這個檔案或者這個目錄。
Rsync+Inotify-tools與Rsync+sersync這兩種架構有什麼差別?
1、Rsync+Inotify-tools
(1):Inotify-tools隻能記錄下被監聽的目錄發生了變化(包括增加、删除、修改),并沒有把具體是哪個檔案或者哪個目錄發生了變化記錄下來;
(2):rsync在同步的時候,并不知道具體是哪個檔案或者哪個目錄發生了變化,每次都是對整個目錄進行同步,當資料量很大時,整個目錄同步非常耗時(rsync要對整個目錄周遊查找對比檔案),是以,效率很低。
2、Rsync+sersync
(1):sersync可以記錄下被監聽目錄中發生變化的(包括增加、删除、修改)具體某一個檔案或某一個目錄的名字;
(2):rsync在同步的時候,隻同步發生變化的這個檔案或者這個目錄(每次發生變化的資料相對整個同步目錄資料來說是很小的,rsync在周遊查找比對檔案時,速度很快),是以,效率很高。
小結:當同步的目錄資料量不大時,建議使用Rsync+Inotify-tools;當資料量很大(幾百G甚至1T以上)、檔案很多時,建議使用Rsync+sersync。
<a></a>
下載下傳
tar zxvf sersync2.5.4_64bit_binary_stable_final.tar
mv GUN-linux x86 /usr/local/sersync
cd /usr/local/sersync #進入sersync安裝目錄
cp confxml.xml confxml.xml-bak #備份原檔案
vi confxml.xml #編輯,修改下面的代碼
<localpath watch=" 本地目錄">
<remote ip=" 目的IP" name=" 子產品名字"/>
<commonParams params="-artuz"/>
<auth start="true" users="使用者名" passwordfile=" 密碼檔案"/>
<crontab start="true" schedule="600"><!--600mins--> #設定為true,每隔600分鐘執行一次全盤同步
設定sersync監控開機自動執行
vi /etc/rc.d/rc.local #編輯,在最後添加一行
/usr/local/sersync/sersync2 -d -r -o /usr/local/sersync/confxml.xml #設定開機自動運作腳本
:wq! #儲存退出
同步
cd /usr/local/sersync
./sersync2 –r
腳本
vi /home/sh/sersync.sh
#!/bin/sh
sersync="/usr/local/sersync/sersync2"
confxml="/usr/local/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
:wq #儲存腳本
chmod +x /home/sh/sersync.sh
vi /etc/crontab #編輯,在最後添加下面一行
*/5 * * * * root /home/sh/sersync.sh > /dev/null 2>&1 #每隔5分鐘執行一次腳本
service crond reload #重新加載服務
在主伺服器上開啟sersync守護程序,使sersync在背景運作,開啟實時同步。
./sersync -d
在開啟實時監控的之前對主伺服器目錄與遠端目标機目錄進行一次整體同步
./sersync -r
指定配置檔案
./sersync -o XXXX.xml
本文轉自 295631788 51CTO部落格,原文連結:http://blog.51cto.com/hequan/1764699,如需轉載請自行聯系原作者