sersync+rsync實時同步備份部署流程

sersync+rsync實時同步備份部署流程

第一個里程:下載sersync應用軟件

下載地址:https://github.com/wsgzao/sersync
將軟件上傳到服務器
#解壓軟件,並把解壓好的文件放到本地的安裝目錄中
[root@nfs01 data]# cd /tools/
[root@nfs01 tools]# unzip sersync-master.zip
[root@nfs01 tools]# cd sersync-master
[root@nfs01 sersync-master]# tar zxf sersync2.5.4_64bit_binary_stable_final.tar.gz 
[root@nfs01 sersync-master]# mv GNU-Linux-x86/ /usr/local/sersync

第二個里程:安裝rsync服務

部署服務端:
1.檢查是否安裝rsync服務
rpm -qa |grep rsync
2.編寫主配置文件
vim /etc/rsyncd.conf
#全局配置,在全局生效
uid = rsync -->指定rsync服務運行的時候,向磁盤讀取和寫入的操做者
gid = rsync -->指定rsync服務運行的時候,向磁盤讀取和寫入的操做者
use chroot = no -->進行數據同步存儲時,安全相關參數,默認內網進行數據同步時,能夠關閉
max connections = 200 --> 定義向備份服務器進行數據存儲的併發鏈接數
timeout = 300 --> 定義與備份服務器創建的網絡鏈接,在多長時間沒有數據傳輸時,就釋放鏈接
pid file = /var/run/rsyncd.pid --> 服務程序運行時,會將進程的pid信息存儲到一個指定的pid文件中
lock file = /var/run/rsync.lock --> 定義鎖文件,主要用於配合max connections 參數,當達到最大鏈接就禁止繼續訪問
log file = /var/log/rsyncd.log --> 定義服務的日誌文件保存路徑信息
ignore errors --> 在進行數據備份傳輸過程過程當中,忽略一些I/O產生的傳輸錯誤
read only = false --> 設置對備份的目錄的具備讀寫權限,即將只讀模式進行關閉
list = false --> 確認是否能夠將服務配置的模塊信息,在客戶端能夠查看顯示
hosts allow = 172.16.1.0/24 --> 設置備份目錄容許進行網絡數據備份的主機地址或網段信息,即設置白名單
hosts deny = 0.0.0.0/32 --> 設置備份目錄禁止進行網絡數據備份的主機地址或網段信息,即設置黑名單
auth users = rsync_backup --> 指定訪問備份數據目錄的認證用戶信息,爲虛擬定義的用戶,不須要進行建立
secrets file = /etc/rsync.password --> 設置訪問備份數據目錄進行認證用戶的密碼文件信息,會在文件中設置認證用戶密碼信息
#局部配置,只在模塊內生效
[backup] --> 指定備份目錄的模塊名稱信息
comment = "backup dir by oldboy" --> 模塊說明信息
path = /backup --> 指定數據進行備份的目錄信息
3.建立備份管理用戶
useradd -M -s /sbin/nologin rsync
4.建立備份目錄,並將所屬主與所屬組改爲rsync用戶
mkdir /backup
chown rsync. /backup
5.建立用戶認證文件,編寫認證用戶和密碼信息,設置文件權限爲600
echo 'rsync_backup:123' >> /etc/rsync.password
chmod 600 /etc/rsync.password
6.啓動rsync守護進程服務
rsync --daemon
部署客戶端:
1.檢查是否安裝rsync服務
rpm -qa |grep rsync
2.建立認證文件,編寫認證用戶密碼,設置文件權限爲600
echo '123' >> /etc/rsync.password
chmod 600 /etc/rsync.password
3.利用客戶端進行數據同步測試
[root@nfs01 /]# rsync -avz /etc/hosts rsync_backup@172.16.1.41::back
up --password-file=/etc/rsync.password sending incremental file list
hosts

第三個里程:修改配置文件

[root@nfs01 sersync-master]# vim /usr/local/sersync/confxml.xml 
<?xml version="1.0" encoding="ISO-8859-1"?>
<head version="2.5">
     <host hostip="localhost" port="8008"></host>
     <debug start="true"/>
     <fileSystem xfs="false"/>
    <!-- 說明:實現同步數據過濾排除功能 -->
     <filter start="false">
     <exclude expression="(.*)\.svn"></exclude>
    <exclude expression="(.*)\.gz"></exclude>
    <exclude expression="^info/*"></exclude>
    <exclude expression="^static/*"></exclude>
     </filter>
    <!-- 說明:相似於inotify的-e參數功能,指定監控的事件信息 -->
     <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"> <!-- 這裏填寫服務器A要同步的文件夾路徑-->
     <remote ip="172.16.1.41" name="backup"/> <!-- 這裏填寫備份服務器的IP地址和模塊名-->
     <!--<remote ip="192.168.28.39" name="tongbu"/>-->
     <!--<remote ip="192.168.28.40" name="tongbu"/>-->
     </localpath>
     <rsync>
     <commonParams params="-az"/>
     <auth start="true" users="rsync_backup" passwordfile="/app/local/sersync/user.password"/> <!-- rsync+密碼文件 這裏填寫備份服務器的認證信息-->
     <userDefinedPort start="false" port="874"/><!-- 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--><!-- 修改失敗日誌記錄(可選)-->
     <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="/home/demo">
     <deshost ip="210.36.158.xxx" port="8009"/>
     </localpath>
     </plugin>
     <plugin name="refreshCDN">
     <localpath watch="/data0/htdocs/cdn.markdream.com/site/">
     <cdninfo domainname="cdn.chinacache.com" port="80" username="xxxx" passwd="xxxx"/>
     <sendurl base="http://cdn.markdream.com/cms"/>
     <regexurl regex="false" match="cdn.markdream.com/site([/a-zA-Z0-9]*).cdn.markdream.com/images"/>
     </localpath>
     </plugin>
</head>

第四個里程:啓動sersync服務,並進行測試

[root@nfs01 sersync-master]# /usr/local/sersync/sersync2 -dro /usr/local/sersync/confxml.xml
#存儲服務器
[root@nfs01 sersync-master]# cd /data
[root@nfs01 data]# ls |wc -l
101
[root@nfs01 data]# rm -rf *
[root@nfs01 data]# ls |wc -l
0
#備份服務器
[root@backup backup]# ls |wc -l
101
[root@backup backup]# ls |wc -l
101
[root@backup backup]# ls |wc -l
0
sersync啓動參數說明
參數-d:啓用守護進程模式
參數-r:在監控前,將監控目錄與遠程主機用rsync命令推送一遍(測試)
參數-n:指定開啓守護線程的數量,默認爲10個
參數-o:指定配置文件,默認使用confxml.xml文件
相關文章
相關標籤/搜索