centos8安裝sersync為rsync實現實時同步


一,查看本地centos的版本:

[root@localhost lib]# cat /etc/redhat-release 
CentOS Linux release 8.1.1911 (Core) 

說明:劉宏締的架構森林是一個專注架構的博客,地址:https://www.cnblogs.com/architectforest

         對應的源碼可以訪問這里獲取: https://github.com/liuhongdi/

 說明:作者:劉宏締 郵箱: 371125307@qq.com

 

二,查看內核是否支持inotify

[root@localhost nfs]# ll /proc/sys/fs/inotify/
總用量 0
-rw-r--r-- 1 root root 0 2月  24 15:01 max_queued_events
-rw-r--r-- 1 root root 0 2月  24 15:01 max_user_instances
-rw-r--r-- 1 root root 0 2月  24 13:20 max_user_watches

 

說明:看到列出的三個文件,說明系統內核支持inotify

說明:sersync是基於inotify的,所以需要這個功能模塊的支持

 

三,配置inotify參數,避免因限制導致出錯

查看inotify相關的三個值:

分別為:隊列中event的長度,用戶可監控數量的多少,用戶可使用的實例數量

[root@localhost nfs]# sysctl -a | grep max_queued_events
fs.inotify.max_queued_events = 16384
[root@localhost nfs]# sysctl -a | grep max_user_watches
fs.inotify.max_user_watches = 8192
[root@localhost nfs]# sysctl -a | grep max_user_instances
fs.inotify.max_user_instances = 128

修改:

[root@localhost source]# sysctl -w fs.inotify.max_queued_events="327679"
fs.inotify.max_queued_events = 327679
[root@localhost source]# sysctl -w fs.inotify.max_user_watches="50000000"
fs.inotify.max_user_watches = 50000000
[root@localhost source]# sysctl -w fs.inotify.max_user_instances="65535"
fs.inotify.max_user_instances = 65535
[root@localhost source]# sysctl -p

 

四,下載安裝sersync

1,下載地址

說明:官方地址:

https://sersync.googlecode.com/files/sersync2.5.4_64bit_binary_stable_final.tar.gz

在牆外打不開,大家可以訪問下面github上面的地址:

https://github.com/wsgzao/sersync

 

2,下載及解壓:

[root@localhost source]# wget https://codeload.github.com/wsgzao/sersync/zip/master
[root@localhost source]# mv master master.zip
[root@localhost source]# unzip master.zip

3,安裝到soft目錄

[root@localhost source]# cd sersync-master/
[root@localhost sersync-master]# ls
inotify-tools-3.14.tar.gz  README.md  rsync-3.1.1.tar.gz  sersync2.5.4_64bit_binary_stable_final.tar.gz
[root@localhost sersync-master]# tar -zxvf sersync2.5.4_64bit_binary_stable_final.tar.gz 
[root@localhost sersync-master]# mv GNU-Linux-x86/ /usr/local/soft/sersync2

 

五,查看sersync的幫助信息

[root@localhost sersync-master]# /usr/local/soft/sersync2/sersync2 -help

 

六,sersync的參數說明:

參數-d:啟用守護進程模式
參數-r:在監控前,將監控目錄與遠程主機用rsync命令推送一遍
參數-n: 指定開啟守護線程的數量,默認為10個
參數-o:指定配置文件,默認使用confxml.xml文件

 

七,sersync的配置:

1,inotify項的配置建議:說明:是使用inotify監控的類型:

<inotify>
    <delete start="true"/>
    <createFolder start="true"/>
    <createFile start="true"/>
    <closeWrite start="true"/>
    <moveFrom start="true"/>
    <moveTo start="true"/>
    <attrib start="false"/>
    <modify start="true"/>
    </inotify>

 

2,localpath:

    <localpath watch="/data/nfs/source">
        <remote ip="127.0.0.1" name="wwwroot"/>
        <!--<remote ip="192.168.8.39" name="tongbu"/>-->
        <!--<remote ip="192.168.8.40" name="tongbu"/>-->
    </localpath>

說明:

/data/nfs/source是本地要監控的目錄

    remote 對應服務的ip和name

 

3,rsync的配置

<rsync>
        <commonParams params="-artuz"/>
        <auth start="true" users="pusher" passwordfile="/data/rsync/conf/client.pass"/>
        <userDefinedPort start="false" port="874"/><!-- port=874 -->
        <timeout start="false" time="100"/><!-- timeout=100 -->
        <ssh start="false"/>
    </rsync>

 

4,說明:其他的設置項不必改動

 

八,運行sersync

[root@localhost liuhongdi]# /usr/local/soft/sersync2/sersync2 -r -d -o /usr/local/soft/sersync2/confxml.xml

 

九,關於rsync服務的搭建:參見這一篇:

https://www.cnblogs.com/architectforest/p/12360875.html

 

十,sersync的日志位於何處?

[root@localhost liuhongdi]# more /tmp/rsync_fail_log.sh 
#errno 2560
cd /data/nfs/source && rsync -artuz -R "./abc.txt" pusher@127.0.0.1::wwwroot --password-file=/data/rsync/conf/client.pass >/dev/null 2>&1

 

十一,測試本地兩個目錄的同步情況:

1,   /data/nfs/source這個目錄是sersync監控的目錄

[root@localhost source]# pwd
/data/nfs/source
[root@localhost source]# vi rand.txt
[root@localhost source]# more rand.txt 
rand

 

2,/data/nfs/dest 是rsync服務中wwwroot這個區域指定的目錄

[root@localhost dest]# pwd
/data/nfs/dest
[root@localhost dest]# more rand.txt 
rand

 

說明:在監控目錄中增加文件后,rsync同步的目錄中文件也立即出現,且內容相同

        所以sersync很適合做文件備份

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM