當(dāng)前版本的sersync依賴于rsync進行同步。如下圖所示,在同步主服務(wù)器上開啟sersync,將監(jiān)控路徑中的文件同步到目標(biāo)服務(wù)器,因此需要在主服務(wù)器配置sersync,在同步目標(biāo)服務(wù)器配置rsync。對于rsync配置,在google上可以找到很多資料,以下只是一些必要的配置和使用說明,僅供參考,請根據(jù)您的實際情況修改。
如圖所示,需要在同步主服務(wù)器上配置sersync,在同步目標(biāo)服務(wù)器配置rsync,并在目標(biāo)服務(wù)器開啟rsync守候進程,這樣在主服務(wù)器產(chǎn)生的文件,就會被sersync實時同步到多個目標(biāo)服務(wù)器。在centos系統(tǒng)下默認已經(jīng)安裝了rsync,只需進行配置,并開啟rsync守候進程即可。
配置同步目標(biāo)服務(wù)器rsync
在多臺目標(biāo)服務(wù)器上配置如下:
vi /etc/rsyncd.conf
01 uid=root
02 gid=root
03 max connections=36000
04 use chroot=no
05 log file=/var/log/rsyncd.log
06 pid file=/var/run/rsyncd.pid
07 lock file=/var/run/rsyncd.lock
08
09
10 [tongbu1]
11 path=/opt/tongbu1
12 comment = xoyo video files
13 ignore errors = yes
14 read only = no
15 hosts allow = 192.168.0.100/24
16 hosts deny = *
上面配置文件,表明允許主服務(wù)器(假設(shè)ip為192.168.0.100)訪問,rsync同步模塊名為[tongbu1],將同步過來的文件放入path指定的目錄/opt/tongbu1。
如果有多臺從服務(wù)器,則每一臺都需要進行類似的配置。
配置好之后,使用如下命令,開啟rsync守護進程:
rsync --daemon
在主服務(wù)器上安裝配置sresync
在google code下載sersync的可執(zhí)行文件版本,里面有配置文件與可執(zhí)行文件,這里用sersync2.5進行說明,新版本配置形式類似。
tar -zxvf sersyncXxxx_xxbit_binary.tar.gz
cd GNU-Linux-x86/
vi confxml.xml
修改如下部分:
1 <sersync>
2 <localpath watch="/opt/tongbu">
3 <remote ip="192.168.0.104" name="tongbu1"/>
4 <remote ip="192.168.0.105" name="tongbu1"/>
5 </localpath>
表明要將主服務(wù)器上本地的/opt/tongbu 路徑下的文件,同步到遠程服務(wù)器 192.168.0.104 與 192.168.0.105上的tongbu1 模塊。
運行Sersync與Sersync啟動參數(shù)
sersync會對目錄進行監(jiān)控,將變化的目錄或文件同步到遠程服務(wù)器。sersync是遞歸監(jiān)控的,如果有多級目錄,都會同步到遠程服務(wù)器。常用啟動方式如下:
1.在主服務(wù)器上開啟sersync守護進程,使sersync在后臺運行,開啟實時同步。
./sersync -d
過程如下:
[root@localhost GNU-Linux-x86]# ls
confxml.xml sersync2
[root@localhost GNU-Linux-x86]# ./sersync2 -d
set the system param
execute:echo 50000000 > /proc/sys/fs/inotify/max_user_watches
execute:echo 327679 > /proc/sys/fs/inotify/max_queued_events
parse the command param
daemon thread num: 10
parse xml config file
host ip : localhost host port: 8008
config xml parse success
please set /etc/rsyncd.conf max connections=0 Manually
sersync working thread 12 = 1(primary thread) + 1(fail retry thread) + 10(daemon sub threads)
please according your cpu ,use -n param to adjust the cpu rate
run the sersync:
watch path is: /opt/tongbu
表明,sersync已經(jīng)開啟,可以在本地監(jiān)控路徑下建立文件,查看遠程是否同步成功。
2.在開啟實時監(jiān)控的之前對主服務(wù)器目錄與遠程目標(biāo)機目錄進行一次整體同步
./sersync -r
如果需要將sersync運行前,已經(jīng)存在的所有文件或目錄全部同步到遠程,要以-r參數(shù)運行sersync,將本地與遠程整體同步一次。
如果設(shè)置了過濾器,即在xml文件中,filter為true,則暫時不能使用-r參數(shù)進行整體同步。-r參數(shù)將會無效
3.查看啟動參數(shù)幫助
./sersync --help
4.指定配置文件
./sersync -o XXXX.xml
對于sersync使用可執(zhí)行文件目錄下的默認配置文件confxml.xml,如果需要使用另一個配置文件,可以使用-o參數(shù)指定其它配置文件。
5.指定默認的線程池的線程總數(shù)
./sersync -n num
例如 ./sersync -n 5 則指定線程總數(shù)為5,如果不指定,默認啟動線程池數(shù)量是10,如果cpu使用過高,可以通過這個參數(shù)調(diào)低,如果機器配置較高,可以用-n跳高線程總數(shù)。
6.不進行同步,只運行插件
./sersync -m pluginName
例如./sersync -m command,則在監(jiān)控到文件事件后,不對遠程目標(biāo)服務(wù)器進行同步,而是直接運行command插件。
7.多個參數(shù)可以配合使用
./sersync -n 8 -o abc.xml -r -d
表示,設(shè)置線程池工作線程為8個,指定abc.xml作為配置文件,在實時監(jiān)控前作一次整體同步,以守護進程方式在后臺運行。
8.通常情況下,對本地到遠程整體同步一遍后,在后臺運行實時同步。
./sersync -r -d