inotify+rsync及sersync部署流程

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了inotify+rsync及sersync部署流程相关的知识,希望对你有一定的参考价值。

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 三个文件进行优化
    [[email protected]_server inotify]# cat /proc/sys/fs/inotify/max_user_watches
    50000000
    [[email protected]_server inotify]# cat /proc/sys/fs/inotify/max_queued_events
    3276790
    [[email protected]_server inotify]# echo “50000000” >/proc/sys/fs/inotify/max_user_watches
    [[email protected]_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,只是暂停脚本运行(暂停的进程)
[[email protected] 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命令拥有执行权限

    [[email protected] 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
    [[email protected] 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部署流程的主要内容,如果未能解决你的问题,请参考以下文章

sersync+rsync原理及部署

sersync 配合rsync实时同步备份

Linux三阶段之四:实时同步(inotify+rsync,sersync+rsync)

inotify+rsync+sersync实时数据备份

sersync/lsyncd实时同步

[sersync+rsync] 文件同步部署实战