1. 程式人生 > >inotify+rsync及sersync部署流程

inotify+rsync及sersync部署流程

利用 nc命令 文件 lin socket opp chm 統計 解壓縮

inotify+rsync部署流程:

第一步:完成部署rsync守護進程服務

第二步:確認inotify軟件是否安裝
擴展yum源(擴展的倉庫):epel(企業級linux的yum源的擴展倉庫)
? 阿裏雲epel源:通過訪問阿裏yum源鏡像地址獲取
? 直接安裝epel源方式:yum install epel-release
yum install inotify-tools -y
/usr/bin/inotifywait --- 開啟實時監控服務,監控目錄或文件的數據變化
/usr/bin/inotifywatch --- 收集被監控的文件系統使用的統計數據,指文件系統事件發生的次數統計。


  1. inotify軟件服務優化
    對 max_user_watches max_user_instances max_queued_events 三個文件進行優化
    [root@inotify_server inotify]# cat /proc/sys/fs/inotify/max_user_watches
    50000000
    [root@inotify_server inotify]# cat /proc/sys/fs/inotify/max_queued_events
    3276790
    [root@inotify_server inotify]# echo “50000000” >/proc/sys/fs/inotify/max_user_watches
    [root@inotify_server inotify]# echo “50000000” >/proc/sys/fs/inotify/max_queued_events
    說明:以上配置重啟可能會失效,需要放置在rc.local文件中

第三步:利用腳本的方式,將以上兩個服務串聯在一起
cat inotify.sh
#!/bin/bash

inotifywait -mrq  --format "%w%f" -e create,close_write,delete,moved_to /data|while read line
do
  rsync -az /data/ --delete [email protected]::backup --password-file=/etc/rsync.password
done

腳本在無限循環執行時:
方法一:利用ctrl+z,只是暫停腳本運行(暫停的進程)
[root@nfs01 scripts]# jobs       --- 前臺運行腳本命令,若放入後臺,可以通過jobs命令
[1]+  Stopped                 sh -x inotify.sh
方法二:kill -9 9857 9859   強制殺

        pkill -f inotify    模糊殺

sersync部署流程:

第一步:完成部署rsync守護進程服務
第二步:部署sersync實時監控服務
第三步:確認軟件是否安裝(sersync)
綠色軟件包的安裝方式(二進制包安裝方式)
sersync軟件官方地址:https://github.com/wsgzao/sersync
進行軟件下載
將下載好的軟件程序上傳到服務器中(nfs服務器)
解壓縮軟件程序包
unzip sersync_installdir_64bit.zip
將軟件程序目錄移動到指定目錄中
mv sersync/ /usr/local/

第四步:編寫sersync配置文件
<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">
        <remote ip="172.16.1.41" name="backup"/>
        <!--<remote ip="192.168.8.39" name="tongbu"/>-->
        <!--<remote ip="192.168.8.40" name="tongbu"/>-->
    </localpath>
    <rsync>
        <commonParams params="-az"/>
        <auth start="true" users="rsync_backup" passwordfile="/etc/rsync.password"/>
        <userDefinedPort start="false" port="874"/><!-- port=874 -->
        <timeout start="false" time="100"/><!-- timeout=100 -->
        <ssh start="false"/>
    </rsync>
    說明:sersync同步信息
    watch="/data"                           指定監控的目錄
    ip="172.16.1.41"                        指定備份服務器地址
    name="backup"                           指定備份服務器模塊信息
    params="-az"                            指定rsync推送命令參數
    users="rsync_backup                     指定rsync認證用戶
    passwordfile="/etc/rsync.password"      指定rsync認證文件

第五步:啟動sersync服務
chmod +x sersync --- 授予sersync命令擁有執行權限

    [root@nfs01 bin]# ./sersync -h

    參數-d:啟用守護進程模式
    參數-r:在監控前,將監控目錄與遠程主機用rsync命令推送一遍
    c參數-n: 指定開啟守護線程的數量,默認為10個
    參數-o:指定配置文件,默認使用confxml.xml文件
    參數-m:單獨啟用其他模塊,使用 -m refreshCDN 開啟刷新CDN模塊
    參數-m:單獨啟用其他模塊,使用 -m socket 開啟socket模塊
    參數-m:單獨啟用其他模塊,使用 -m http 開啟http模塊
    不加-m參數,則默認執行同步程序

    ./sersync -dro /usr/local/sersync/conf/confxml.xml
    [root@nfs01 data]# ps -ef|grep sersync
    root      10128      1  0 13:04 ?        00:00:00 ./sersync -dro /usr/local/sersync/conf/confxml.xml

inotify+rsync及sersync部署流程