1. 程式人生 > >sersync+rsync 數據同步配置

sersync+rsync 數據同步配置

sersync rsync

目標:

在master 主機上寫入數據後,master 利用sersync 監控本地數據目錄,當發生變化時,觸發命令,使用rsync推送變化的數據到遠程的slave主機上,實現數據同步。


配置思路:

master:

1、 安裝 sersync ,配置confxml.xml文件(其實質就是記錄執行rsync命令的一些參數,啟動sersync2的服務後,會監控我們指定的目錄,當發生變化時,就使用rsync 命令對變化的目錄和文件進行同步)

2、 配置執行rsync 命令時所需要的密碼文件,此密碼為遠程連接slave主機時的驗證密碼。(用戶在confxml.xml文件中指定)

3、修改密碼文件權限為600。

4 、sersync2守護進程(此步在配置好slave後執行)。


slave:

1、安裝rsync, 配置/etc/rsyncd.conf文件,指定同步用戶、主機連接權限、同步的模塊和數據復制的機制等。

2、創建rsync的用戶密碼認證文件,並修改文件權限為600.

3、使用rsync --daemon 啟動監聽本機873端口。


配置流程:

slave:

1、安裝配置rsync:

yum install rsync
vim /etc/rsyncd.conf

uid = root
gid = root
use chroot = no      
max connections = 2000  
timeout = 600             
pid file =/var/run/rsyncd.pid        
lock file =/var/run/rsync.lock      
log file = /var/log/rsyncd.log     
read only = no
hosts allow = 192.168.20.11
hosts deny = 0.0.0.0/32
auth users = rsync_backup
secrets file =/etc/rsync.password
[data_bak]                        
comment = hhhhh
path = /data/

2、密碼配置:

# cat /etc/rsync.password 
rsync_backup:passnfs
# ls -l /etc/rsync.password
-rw------- 1 root root 24 Jun  9 22:20 /etc/rsync.password


3、啟動873端口:

rsync --daemon

# netstat -lntp|grep 873
tcp        0      0 0.0.0.0:873             0.0.0.0:*               LISTEN      23812/rsync         
tcp6       0      0 :::873                  :::*                    LISTEN      23812/rsync


master:

1、下載sersync-64bit.tar.gz,解壓安裝,

tar xf sersync-64bit.tar.gz
mv GNU-Linux-x86 /usr/local/sersync
cd /usr/local/sersync
cp confxml.xml confxml.xml.bak


2、配置confxml.xml:

 <sersync>
        <localpath watch="/data">                # 同步數據目錄
            <remote ip="192.168.20.12" name="data_bak"/>  #遠程主機IP,遠程rsync同步模塊名稱
            <!--<remote ip="192.168.8.39" name="tongbu"/>-->
            <!--<remote ip="192.168.8.40" name="tongbu"/>-->
        </localpath>
        <rsync>
            <commonParams params="-artuz"/>  # rsync 同步參數
            <auth start="true" users="rsync_backup" passwordfile="/etc/rsync.pas"/> #用戶名密碼文件
            <userDefinedPort start="false" port="874"/><!-- port=874 -->
            <timeout start="false" time="100"/><!-- timeout=100 -->
            <ssh start="false"/>
        </rsync>


3、配置密碼文件:

# cat /etc/rsync.pas 
passnfs
# ls -l /etc/rsync.pas
-rw------- 1 root root 11 Jun  9 22:30 /etc/rsync.pas

4、執行sersync 命令守護進程,進行同步。

/usr/local/sersync/sersync2 -d -r -o /usr/local/sersync/confxml.xml


添加定時任務監控

可以添加定時任務,對服務進程進行監控,如可以將下面的腳本加到master定時任務中每10min執行一次:

#!/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

同理,在slave上也可以將此腳本添加到定時任務:

#!/bin/sh
status=$(ps aux|grep rsync|grep -v grep|wc -l)
if [ $status -eq 0 ]
then
  rsync --daemon
else
  exit 0
fi

小提示: 腳本名稱不要與監控的服務名有相同的字段,如果有相同字段需要修改if 判斷條件。

本文出自 “Trying” 博客,請務必保留此出處http://tryingstuff.blog.51cto.com/4603492/1933981

sersync+rsync 數據同步配置