1. 程式人生 > >rsync+sersync實現實時同步

rsync+sersync實現實時同步

之前的一篇中記錄了rsync+inotify實現檔案的實時傳輸,礙於inotifywait的bug問題,線上同步網站檔案無法使用,所以再記錄一下sersync的配置,留待使用時檢視。

環境:centos6.8

IP及功能劃分:

172.17.9.151(釋出伺服器)

172.17.9.150 (web伺服器)

需求:釋出伺服器生成靜態頁面(wwwroot下),使用rsync+sersync進行實時同步,將檔案實時同步到web伺服器(www下)。

web伺服器端(9.150)

1、關閉selinux、開放rsync的埠(預設873)這裡不再進行贅述;

2、yum -y install rsync  (若內網環境無法聯網,使用光碟yum源);

3、新建rsyncd.conf配置檔案(安裝rsync時預設未建立)

[[email protected] www]# cat /etc/rsyncd.conf 
# This configuration file for rsync daemon
#執行rsync的使用者
gid = root                          
uid = root
#是否切換root許可權
use chroot = no 
#設定是否只讀                            
read only = no
#最大連線數                                                          
max connections = 5                      
pid file = /var/run/rsyncd.pid 
#定義驗證檔案路徑及檔名            
secrets file = /etc/rsyncd.password   
lock file = /var/run/rsync.lock                  
log file = /var/log/rsync.log               
transfer logging = yes                    
log format = %t %a %m %f %b
syslog facility = local3
timeout = 300
#定義模組名
[backup]  
#此模組對應的同步目錄
path = /data/www   
#不對模組下的列表進行列表顯示                    
list=no         
#忽略錯誤
ignore errors
#定義傳輸時使用的使用者,同上面的secrets file定義的密碼驗證檔案一塊使用,實現無互動式傳輸
auth users = rsyncuser                         

4、建立驗證檔案並修改許可權

echo "rsyncuser:12345" > /etc/rsyncd.password
chmod 600 /etc/rsyncd.password

5、使用守護程序的方式執行rsync

   rsync --daemon

釋出伺服器(9.151)

1、yum -y install rsync

2、建立密碼檔案,不同於web伺服器端的是,此passwod檔案中只需要密碼即可

echo "12345" > /etc/rsyncd.password
chmod 600 /etc/rsyncd.password

3、測試同步(將源目錄wwwroot同步到目標伺服器9.150的backup模組對應的目錄下)

rsync -avH --port=873 --progress --delete   wwwroot  [email protected]::backup --password-file=/etc/rsyncd.password

Sersync配置 

4、下載sersync http://sersync.googlecode.com/files/sersync2.1_64bit_binary.tar.gz (這裡需要翻牆的,沒有的話只能通過別人的網盤下載,這裡提供我自己的網盤分享地址:連結: https://pan.baidu.com/s/18qO9EMKyfbiasG-4AYoWEQ 提取碼: k67u)

5、下載完成後上傳到伺服器,直接解壓縮,移動到需要安裝的目錄,編輯配置檔案

tar -zxf sersync2.5.4_64bit_binary_stable_final.tar.gz
mv GNU-Linux-x86/ /usr/local/sersync
vim /usr/local/sersync/conxml.xml

6、配置檔案模版: 

<?xml version="1.0" encoding="ISO-8859-1"?>
<head version="2.5">
    <host hostip="localhost" port="8008"></host>
    <debug start="false"/>
    <fileSystem xfs="false"/>
<!--改為true,則開啟檔案過濾,exclude中進行設定哪些格式檔案不做同步-->
    <filter start="false">
	<exclude expression="(.*)\.svn"></exclude>
	<exclude expression="(.*)\.gz"></exclude>
	<exclude expression="^info/*"></exclude>
	<exclude expression="^static/*"></exclude>
    </filter>
<!--inotify事件監控,根據需要可以開啟或關閉-->
    <inotify>
	<delete start="true"/>
	<createFolder start="true"/>
	<createFile start="false"/>
	<closeWrite start="true"/>
	<moveFrom start="true"/>
	<moveTo start="true"/>
	<attrib start="false"/>
	<modify start="true"/>
    </inotify>

    <sersync>
<!--localpath配置需要監聽的的目錄-->
	<localpath watch="/assoft/wwwroot">
<!--remote ip設定遠端rsync服務端的ip,backup為模組名,多臺服務端則複製多個remote標籤-->
	    <remote ip="172.17.9.150" name="backup"/>
	    <!--<remote ip="192.168.8.39" name="tongbu"/>-->
	    <!--<remote ip="192.168.8.40" name="tongbu"/>-->
	</localpath>
	<rsync>
<!-- 設定rsync的引數,auth則設定是否使用密碼檔案驗證,需要則指定使用者及密碼檔案,若rsync服務端更改了rsync的預設埠,則需要在userDefinedPort中開啟埠指定-->
	    <commonParams params="-artuz"/>
	    <auth start="true" users="rsyncuser" passwordfile="/etc/rsync.password"/>
	    <userDefinedPort start="true" port="873"/><!-- port=874 -->
	    <timeout start="false" time="100"/><!-- timeout=100 -->
	    <ssh start="false"/>
	</rsync>
	<failLog path="/tmp/rsync_fail_log.sh" timeToExecute="60"/><!--default every 60mins execute once-->
<!--這裡配置為true則在600min以後,執行一次整體同步-->
	<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>
<!--重新整理CDN的引數,我這裡使用不到,就不做介紹了-->
    <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>

7、啟動sersync,最後上線加入開機啟動即可。

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

 引數: 

-d 啟用守護程序模式
-n 指定開啟守護執行緒的數量,預設為10個
-o 指定配置檔案,預設使用confxml.xml檔案
-m 單獨啟用其他模組,使用 -m socket 開啟socket模組 (refreshCDN、http)

相關推薦

rsync+sersync實現實時同步

之前的一篇中記錄了rsync+inotify實現檔案的實時傳輸,礙於inotifywait的bug問題,線上同步網站檔案無法使用,所以再記錄一下sersync的配置,留待使用時檢視。 環境:centos6.8 IP及功能劃分: 172.17.9.151(釋出伺服器)

Centos利用 rsync+inotify實現實時同步

rsync inotify 1.1 inotify介紹inotify是一種強大的、細粒度的、異步的文件系統事件控制機制。linux內核從2.6.13起,加入了inotify支持,通過inotify可以監控文件系統中添加、刪除、修改、移動等各種事件,利用這個內核接口,第三方軟件就可以監控文件系統下文件的

RSYNC04-配置rsync+inotify實現實時同步

cccccc ror 編譯速度 響應 大於 grep 軟件開發 介紹 cdn 1,背景介紹 Linux內核從2.6.13版本開始提供了inotify通知接口,用來監控文件系統的各種變化情況,如文件存取、刪除、移動等。利用這一機制,可以非常方便地實現文件異動告警、

rsync+inotify實現實時同步

rsync inotify 一、前期準備 1、準備兩臺主機,我這裏的系統是rhel7,分別是192.168.4.11和192.168.4.22二、rsync命令的用法:1、基本格式: rsync [選項] 目錄1/ 目錄2/ 註意加斜線和不加斜線的區別,加斜線就是只同步目錄下的文件2、

rsync+inotify實現實時同步、增量備份

version rev pts 常用 無需 ESS 成功 dex http 主機A:被備份的源主機主機B:備份的目的主機 在linux內核中,默認的inotify機制提供了三個調控參數 [root@fudanwuxi html]# uname -r 3.10.0-69

rsync+inotify實現實時同步案例--轉

隨著應用系統規模的不斷擴大,對資料的安全性和可靠性也提出的更好的要求,rsync在高階業務系統中也逐漸暴露出了很多不足,首先,rsync同步資料時,需要掃描所有檔案後進行比對,進行差量傳輸。如果檔案數量達到了百萬甚至千萬量級,掃描所有檔案將是非常耗時的。而且正在發生變化的往往是其中很少的一部分,這是非常低效的

sersync+rsync實現實時同步備份

sersync+rsync實現實時同步備第一個裏程:下載安裝sersync軟件 先進行軟件下載,把軟件包上傳到系統中 unzip sersync_installdir_64bit.zip cd sersync_installdir_64bit mv sersync /usr/local/ tree 第二個裏

Linux Debian8 Rsync+Sersync實現數據實時同步

dev 火墻 變化 log 默認啟動 define lan vim cut Rsync+sersync實現數據實時同步Rsync??Rsync(remote synchronize)是一個遠程數據同步工具,可通過LAN/WAN快速同步多臺主機間的文件。Rsync使用所謂的“

Linux下Rsync+sersync實現資料實時同步

本教程實現的是Linux伺服器之間自動同步檔案或目錄的功能,網上有很多這方面的教程,大體有兩種途徑 (1)Rsync+inotify-tools (2)Rsync+sersync 本教程採用第二種實現.下面先簡單介紹幾個專案中用到的軟體或概念. R

centos7 Rsync+sersync實現資料實時同步

一、為什麼要用rsync+sersync架構? 1、sersync是基於inotify開發的,類似於inotify-tools的工具 2、sersync可以記錄下被監聽目錄中發生變化的(包括增加、刪除、修改)具體某一個檔案或者某一個目錄的名字,然後使用rsync同步的時候

Linux下的sersyncrsync實現實時同步

對於rsync這裡級不做過多的解釋了,主要介紹的是sersync的配置 1、如果電腦沒有安裝sersync服務的話,我們可以在這個地址進行安裝sersync下載地址 2、我們將下載過來的se

linux rsync遠程同步+sersync+rsync實現實時同步

保存 error 創建 服務 auth word add 同步時間 emc rsync是什麽 rsync全稱Remote Sync ,遠程同步,是Linux/UNIX系統下的文件同步和數據傳輸工具,數據備份,它采用了“rsync算法”使一個客戶機和遠程文件服務器之間的文

Rsync+sersync實現文件實時備份

execute ret 技術分享 存放位置 find a-z 顯示 googl dport 第一部分:在目標服務器192.168.0.217上操作一、在OA文件備份服務器安裝Rsync服務端1、關閉SELINUXvi /etc/selinux/config #編輯防火墻配置

inotify+rsync實現實時同步並郵件通知

代碼 moni 創建目錄 存在 echo ets selinux 5.0 from 服務器之間文件實時同步,監控文件的變化,發送郵件通知,並實時同步文件。 由於人工同步多臺服務器的文件比較吃力,可以借助這樣一套軟件,自動化的實現這樣的工作。 並且可以事實監控變化發送郵件

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

Sersync rsync 1、 先安裝好rsyncd服務端,並配置可以從客戶端將數據同步到服務端,也可以將服務端的數據拉取到本地Rsync服務端配置如下:1.1、創建rsyncd.conf配置文件Vim /etc/rsyncd.conf 配置信息如下#Rsync server##rsyncd.c

inotify+rsync實現實時同步(附解決crontab中無法執行python指令碼的問題)

1.準備環境 # 系統支援的話,下面的目錄就會存在 ls /proc/sys/fs/inotify/ rpm -qa inotify-tools yum -y install inotify-tools 2.inotifywait監控目錄狀態變化 /usr/bin/inotif

CentOS7 Rsync服務搭建-Rsync+Inotify架構實現實時同步

關於centos7版本上面搭建rsync服務並且實現實時同步之前一直是在6版本上面搭建rsync服務,在7版本上面折騰了半天。此處總結下 inotify下載地址:http://github.com/d

20190308 samba服務、inotify和rsync實現實時同步、防火墻

times 產生 lib 實現 day 復雜 共享 輸出 編號 Samba服務[root@centos7 ~]#yum install samba[root@centos7 ~]#systemctl start smb[root@centos7 ~]#ss -ntluNet

rsync+sersync實現數據時時備份

rsync+sersync 實現數據實時備份 linux 數據備份 CentOS6.6中rsync+sersync實現數據實時備份註意:rsync的daemon模式已提前配置好了,只需要配置sersync即可 。一.基本環境系統版本主機名IP地址角色備份/監控目錄CentOS 6.6backu

Rsync+sersync多目錄同步

rsync sersync Rsync+sersync多目錄同步 源服務器:192.168.1.100 目標服務器:192.168.1.200,把源服務器的/data/book 和/data1/book 同步到目標服務器的/data/book 和/data1/book第一部分:在目標服務器192