sersync實時同步

sersync實時同步

實時同步的概述

什麼是實時同步

實時同步是一種只要當前目錄發生變化則會觸發一個事件,事件觸發後會將變化的目錄同步至遠程服務器。

爲何要實時同步

保證數據連續性,減小人力成本,解決nfs單點故障

serync+rsync實時同步

環境準備

主機名 角色 外網IP 內網ip
nfs rsync的客戶端 10.0.0.31 172.16.1.31
backup rsync的服務端 10.0.0.41 172.16.1.41

部署sersync(客戶端)

  • 1.安裝sersync的依賴包
[root@nfs ~]# yum install rsync inotify-tools -y
  • 2.建立源碼包的目錄
[root@nfs ~]# mkdir /source_code
  • 3.獲取sersync的二進制包
[root@nfs /source_code]# wget http://test.driverzeng.com/other/sersync2.5.4_64bit_binary_stable_final.tar.gz

root@nfs /source_code]# ll
-rw-r--r-- 1 root root 727290 May  9  2020 sersync2.5.4_64bit_binary_stable_final.tar.gz
  • 4.綠色軟件解壓即用
[root@nfs source_code]# tar xf sersync2.5.4_64bit_binary_stable_final.tar.gz
  • 5.建立服務安裝目錄
[root@nfs source_code]# mkdir /app
  • 6.將軟件安裝在app目錄下並更名
[root@nfs source_code]# mv GNU-Linux-x86 /app/sersync
  • 7.查看程序相關文件
[root@nfs sersync]# ll# 程序配置文件-rwxr-xr-x 1 root root    2219 Jul  8 18:55 confxml.xml# 程序啓動文件-rwxr-xr-x 1 root root 1810128 Oct 26  2011 sersync2
  • 8.修改配置文件
[root@nfs sersync]# vim confxml.xml # 修改inotify相關配置文件 <inotify>        <delete start="true"/>        <createFolder start="true"/>        <createFile start="true"/>        <closeWrite start="true"/>        <moveFrom start="true"/>        <moveTo start="true"/>        <attrib start="true"/>        <modify start="true"/>    </inotify>    <sersync>        <localpath watch="/nfs_data">            <remote ip="172.16.1.41" name="nfs_backup"/>            <!--<remote ip="192.168.8.39" name="tongbu"/>-->            <!--<remote ip="192.168.8.40" name="tongbu"/>-->        </localpath>        <rsync>            <commonParams params="-az --delete"/>            <auth start="true" users="dsr_backup" passwordfile="/etc/rsync.pas"/>            <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>
  • 9.建立客戶端的密碼文件
[root@nfs sersync]# echo '123' > /etc/rsync.pas
  • 10.給密碼文件受權
[root@nfs sersync]# chmod 600 /etc/rsync.pas
  • 11.啓動服務
[root@nfs /app/sersync]# /app/sersync/sersync2 -dro /app/sersync/confxml.xml
  • .12.使用systemd管理沒有啓動腳本的服務
    • 全部服務的啓動服務腳本目錄:/usr/lib/systemd/system
      • 安裝rpm包,他的啓動腳本自動保存在/usr/lib/systemd/system裏
      • 安裝二進制包和源碼包的啓動腳本須要本身寫
[root@nfs nfs_data]# vim /usr/lib/systemd/system/sersyncd.service
[Unit]
## 描述
Description=This is sersync start service
## 描述
After=xxx

[Service]
## 後臺運行
Type=forking
## 啓動命令
ExecStart=/app/sersync/sersync2 -rdo /app/sersync/confxml.xml
## 中止命令
ExecStop=kill -3 `ps -ef|grep [s]ersync|awk '{print $2}'`
## 重啓命令
ExecReload=kill -1 `ps -ef|grep [s]ersync|awk '{print $2}'`
## true表示給服務分配獨立的臨時空間
PrivateTmp=true

[Install]
WantedBy=multi-user.target
相關文章
相關標籤/搜索