sersync+inotify+rsync部署实时同步

实时同步服务原理/概念
    1)需要部署好rsync守护进程服务,实现数据传输
    2)需要部署好inotify服务,实现目录中数据变化监控
    3)将rsync服务和inotify服务建立联系,将变化的数据进行实时备份传输
    
实时同步服务软件部署
a inotify+rsyc实现实时同步备份
    1、安装inotify软件
    yum -y install inotify-tools
    
    [root@Nfs01 ~]# rpm -ql inotify-tools
    /usr/bin/inotifywait        <-- 实现对数据目录信息变化监控(重点了解)
    usr/bin/inotifywatch        <-- 监控数据信息变化,对变化的数据进行统计

    [root@Nfs01 ~]# ll /proc/sys/fs/inotify/
    total 0
    -rw-r--r-- 1 root root 0 Aug  3 21:44 max_queued_events
    -rw-r--r-- 1 root root 0 Aug  3 21:44 max_user_instances
    -rw-r--r-- 1 root root 0 Aug  3 21:44 max_user_watches
    max_user_watches:    设置inotifywait或inotifywatch命令可以监控的文件数量(单进程)
                        默认只能监控8192个文件
    
    max_user_instances: 设置每个用户可以运行的inotifywait或inotifywatch命令的进程数
                        默认每个用户可以开启inotify服务128个进程
    
    max_queued_events:    设置inotify实例时间(event)队列可容纳的时间数量
                        默认监控时间队列长度为16384
    
    2、将rsync守护进程模式部署完毕
    rsync服务端部署
        1)检查rsync软件是否安装
        2)编写rsync软件主配置文件
        3)创建备份目录管理用户
        4)创建备份目录,病进行授权
        5)创建认证文件,编写认证用户和密码信息,设置文件权限为600
        6)启动rsync守护进程服务
    
    rsync客户端部署
        1)检查rsync软件是否安装
        2)创建认证文件,编写认证用户密码信息即可,设置文件权限为600
        3)利用客户端进行数据同步测试
        
    3、要让inotify软件和rsync软件服务建立连接(shell脚本)
    rsync软件应用命令:
    rsync -avz /etc/hosts rsync_backup@172.16.1.41::backup01 --password-file=/etc/rsync.password
    
    inotify软件应用命令:
    inotifywait
    -m|--monitor                --实现一致监控目录的数据变化
    -r                            --进行递归监控
    -q|--quiet                    --尽量减少信息的输出
    --timefmt<fmt>                --指定输出的时间格式
                                man strftime 获取更多时间参数信息
    --format<fmt>                --指定输出的信息格式
    -e                            --指定监控的事件信息
    man inotifywait 查看所有参数说明和所有可以监控的事件信息
    
    总结主要用到的事件信息:
    create创建、delete删除、moved_to移入、close_write修改
    
    inotifywait -rmq --timefmt "%F" --format "%T %w%f 事件信息 :%e" /data                 <--相对完整的命令应用
    inotifywait -rmq --timefmt "%F" --format "%T %w%f 事件信息 :%e" -e create /data    <-- 指定监控事件信息
    inotifywait -rmq --timefmt "%F" --format "%T %w%f 事件信息 :%e" -e create,delete,moved_to,close_write /data
    以上为实现实时同步过程,所需要的重要监控命令

    编写脚本:实现inotify与rsync软件结合
    #!/bin/bash
    #实时同步
    inotifywait -rmq --format "%T %w%f" -e create,delete,moved_to,close_write /data|\
    while read line
    do
    rsync -avz $line rsync_backup@172.16.1.41::backup01 --password-file=/etc/rsync.password
    done
    
    shell循环语法总结:
    for循环        for xx in 循环条件内容信息;do xxx;done
    while循环    while 循环条件; do xx; done     <--只要条件满足,就一直循环
                while true; do xx ; done        <--死循环
                
    运维工作中编写自动化脚本规范:
    1.先完成基本功能需求
    2.优化完善脚本内容
    3.写上一些注释说明信息
    4.进行反复测试
    
b sersync+rsync实现实时同步备份
    1、下载安装软件,软件下载链接(https://github.com/wsgzao/sersync)
        将他进行解压
        将sersync2和confxml.xml文件移动到/usr/local/sersync目录下面
        
    2、编写sersync配置文件
        -rwxr-xr-x 1 root root    2214 Oct 26  2011 confxml.xml
        6     <filter start="false">
        7         <exclude expression="(.*)\.svn"></exclude>
        8         <exclude expression="(.*)\.gz"></exclude>
        9         <exclude expression="^info/*"></exclude>
        10         <exclude expression="^static/*"></exclude>
        11     </filter>
        说明:实现同步数据过滤排除功能
        
        12     <inotify>
        13         <delete start="true"/>
        14         <createFolder start="true"/>
        15         <createFile start="false"/>
        16         <closeWrite start="true"/>
        17         <moveFrom start="true"/>
        18         <moveTo start="true"/>
        19         <attrib start="false"/>
        20         <modify start="false"/>
        21     </inotify>
        说明:类似于inotify的-e参数功能,指定监控的事件信息
        
        24         <localpath watch="/data">    --指定监控目录
        25             <remote ip="172.16.1.41" name="nfsbackup"/>        --指定备份服务器地址    --指定备份服务器模块信息
        26             <!--<remote ip="192.168.8.39" name="tongbu"/>-->
        27             <!--<remote ip="192.168.8.40" name="tongbu"/>-->
        28         </localpath>
        29         <rsync>
        30             <commonParams params="-az"/>        --指定rsync推送命令参数
        31             <auth start="false" users="rsync_backup" passwordfile="/etc/rsync.password"/>    --指定rsync认证用户        --指定rsync认证文件
        32             <userDefinedPort start="true" port="874"/><!-- port=874 -->  --使用他指定的端口就必须将start修改为true,默认为false
        33             <timeout start="false" time="100"/><!-- timeout=100 -->
        34             <ssh start="false"/>
        35         </rsync>
        说明:以上内容是数据相关的配置信息,是必须进行修改
        
    3、启动sersync服务程序
    [root@nfs01 sersync]# echo $PATH
    /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
    [root@nfs01 sersync]# export PATH="$PATH:/usr/local/sersync/"
    
    参数-d: 启用守护进程模式
    参数-r: 在监控前,将监控目录与远程主机用rsync命令推送一遍
            进行同步测试
    参数-o: 指定配置文件,默认使用confxml.xml文件
             -o /usr/local/sersync/confxml.xml
             -o /usr/local/sersync/confxml02.xml
    
    sersync2 -dro /usr/local/sersync/confxml.xml     --启动实时同步服务
    killall    sersync2                                --停止实时同步服务
    /etc/rc.local <-- sersync2 -dro /usr/local/sersync/confxml.xml     --开机自动启动

实时同步服务概念总结
    1)实现实时同步的原理
        监控目录数据变化    -- inotify
        将数据进行传输        -- rsync
        将监控和传输进行整合    --sersync2
    2)实现实时同步部署方法
        1、部署rsync守护进程
        2、部署inotify软件
        3、部署sersync软件
        

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值