1. 程式人生 > >Sersync+rsync文件實時同步操作配置

Sersync+rsync文件實時同步操作配置

Sersync rsync

1、 先安裝好rsyncd服務端,並配置可以從客戶端將數據同步到服務端,也可以將服務端的數據拉取到本地
Rsync服務端配置如下:
1.1、創建rsyncd.conf配置文件
Vim /etc/rsyncd.conf 配置信息如下
#Rsync server
##rsyncd.conf start##
uid = rsync 這個用戶就是對後面path有讀寫權限
gid = rsync 對後面path有讀寫權限
use chroot = no 無限制
max connections = 2000 最大連接數
timeout = 600 超時時間
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsyncd.lock
log file = /var/log/rsyncd.log
ignore errors
read only = false 設置rsync服務端文件的讀寫權限
list = false 不顯示rsync服務端資源列表
hosts allow = 192.168.239.0/24 允許的客戶端連接的IP地址
hosts deny = 0.0.0.0/32 拒接客戶端連接的IP地址
auth users = rsync_backup 建立的虛擬用戶
secrets file = /etc/rsync.password 建立虛擬用戶的密碼文件
#####################################
[www]
path = /data/www/
[web]
path= /data/web/
1.2、創建rsync用戶用於管理path路徑
Mkdir -p /data/www/
Touch /data/www/ddd.txt
Groupadd rsync
Useradd -s /sbin/nologin -g rsync -M rsync
Chown -R rsync.rsync /data/www
1.3、創建虛擬用戶和密碼並授權600
Echo “rsync_backup:oldboy”>> /etc/rsync.password
Chmod 600 /etc/rsync.password
1.4、啟動rsync服務
Rsync --daemon
2、 配置好rsync客戶端,並測試推送數據和拉取數據
2.1、 創建虛擬用戶密碼文件
Touch /etc/rsync.password
Echo “oldboy” >>/etc/rsync.password
Chmod 600 /etc/rsync.password
2.2、 創建測試文件
Mkdir -p /data/web
Touch /data/web/abc.txt
2.3、 推送數據到rsync服務端,和將服務端ddd.txt文件拉取到本地
Rsync -avzR /data/web/ [email protected]::web –password-file=/etc/rsync.password
Rsync -avzR [email protected]::web /data/web –password-file=/etc/rsync.password
3、 下載sersync並配置
Cd /usr/local/src/
Wget https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/sersync/sersync2.5.4_64bit_binary_stable_final.tar.gz
壓縮包裏面有兩個文件confxml.xml sersync2
sersync2 這個是sersync主程序
confxml.xml 這個是sersync配置文件
tar xf sersync2.5.4_64bit_binary_stable_final.tar.gz
mv GNU-Linux-x86/ /usr/local/sersync
cd /usr/local/sersync
mkdir bin conf logs
mv confxml.xml ./conf
mv sersync2 ./bin

4、 配置confxml.xml文件(×××是需要修改的部份)
<head version="2.5">
<host hostip="localhost" port="8008"></host>
<debug start="false"/>
<fileSystem xfs="false"/>
<filter start="false">
<exclude expression="(.).svn"></exclude>
<exclude expression="(.
).gz"></exclude>
<exclude expression="^info/"></exclude>
<exclude expression="^static/
"></exclude>
</filter>
<inotify>
<delete start="true"/>
<createFolder start="true"/>
<createFile start="false"/>
<closeWrite start="true"/>
<moveFrom start="true"/>
<moveTo start="true"/>
<attrib start="false"/>
<modify start="false"/>
</inotify>

<sersync>
<localpath watch="/data/web">
          /data/web就是rsync客戶端的目錄
    <remote ip="192.168.239.133" name="web"/> 
  192.168.239.133就是rsync服務器的IP地址
  Name=web 這個web就是在rsyncd.conf配置文件裏面定義的模塊
    <!--<remote ip="192.168.8.39" name="tongbu"/>-->   這個註釋
    <!--<remote ip="192.168.8.40" name="tongbu"/>-->   這個註釋
</localpath>
<rsync>
    <commonParams params="-artuz"/> 
      -artuz就是rsync 後面對應的參數選項,例如rsync -avzR
    <auth start="true" users="rsync_backup" passwordfile="/etc/rsync.passwd"/>
            Users=虛擬用戶 passwordfile=虛擬用戶的密碼文件所在的位置
    <userDefinedPort start="false" port="874"/><!-- port=874 -->
    <timeout start="false" time="100"/><!-- timeout=100 -->
    <ssh start="false"/>
</rsync>

#目標服務器傳輸失敗時會重新傳輸,再次失敗會寫入rsync_fail_log中,每隔一段時間(timeToExecute)執行腳本再次傳輸
<failLog path="/usr/local/sersync/logs/rsync_fail_log.sh" timeToExecute="60"/><!--default every 60mins execute once-->
<crontab start="false" schedule="600"><!--600mins-->
<crontabfilter start="false">
<exclude expression=".php"></exclude>
<exclude expression="info/
"></exclude>
</crontabfilter>
</crontab>
<plugin start="false" name="command"/>
</sersync>

<plugin name="command">
<param prefix="/bin/sh" suffix="" ignoreError="true"/>  <!--prefix /opt/tongbu/mmm.sh suffix-->
<filter start="false">
    <include expression="(.*)\.php"/>
    <include expression="(.*)\.sh"/>
</filter>
</plugin>

<plugin name="socket">
<localpath watch="/opt/tongbu">
    <deshost ip="192.168.138.20" port="8009"/>
</localpath>
</plugin>
<plugin name="refreshCDN">
<localpath watch="/data0/htdocs/cms.xoyo.com/site/">
    <cdninfo domainname="ccms.chinacache.com" port="80" username="xxxx" passwd="xxxx"/>
    <sendurl base="http://pic.xoyo.com/cms"/>
    <regexurl regex="false" match="cms.xoyo.com/site([/a-zA-Z0-9]*).xoyo.com/images"/>
</localpath>
</plugin>

</head>
5、 啟動sersync
啟動方法 /usr/local/sersync/bin/sersync2 -r -d -o /usr/local/sersync/conf/confxml.xml
-d daemon方式啟動
-n 啟用線程數量
-o 指定配置文件
-r 遞歸同步目錄數據

Sersync+rsync文件實時同步操作配置