zoukankan      html  css  js  c++  java
  • day31 综合实时同步服务

    实时同步服务部署
    1)部署rsync守护进程
    服务端配置操作
    客户端配置操作
    2)部署inotify监控服务
    第一个步骤:安装软件
    yum install -y inotify-tools

    第二个步骤:熟悉命令的使用
    /usr/bin/inotifywait --- 监控目录数据信息变化
    /usr/bin/inotifywatch --- 对监控的变化信息进行统计

    /data/ oldboy01.txt
    oldboy02.txt --- rsync --exclude
    oldboy03.txt

    inotifywait命令使用方法:
    inotifywait [参数] 监控的目录
    -m|--monitor --- 实现一直监控目录的数据变化
    -r|--recursive --- 进行递归监控
    -q|--quiet --- 尽量减少信息的输出
    --format <fmt> --- 指定输出信息的格式
    --timefmt --- 指定输出的时间信息格式
    -e|--event --- 指定监控的事件信息

    创建文件监控信息输出
    /data/ CREATE user13 --- 一个文件被创建
    /data/ OPEN user13 --- 打开创建的文件
    /data/ ATTRIB user13 --- 修改文件的属性信息
    /data/ CLOSE_WRITE,CLOSE user13 --- 保存关闭一个文件

    删除文件监控信息输出
    /data/ DELETE user13

    修改文件监控信息输出
    /data/ CREATE user10
    /data/ OPEN user10
    /data/ MODIFY user10
    /data/ CLOSE_WRITE,CLOSE user10

    sed命令修改文件原理
    /data/ OPEN user10 --- 打开文件
    /data/ CREATE sedpSAFR7 --- 创建出一个临时文件(内存)
    /data/ OPEN sedpSAFR7 --- 临时文件进行打开
    /data/ ACCESS user10 --- 读取源文件内容
    /data/ MODIFY sedpSAFR7 --- 修改临时文件
    /data/ ATTRIB sedpSAFR7 --- 临时文件属性变化
    /data/ CLOSE_NOWRITE,CLOSE user10 --- 不编辑直接关闭源文件
    /data/ CLOSE_WRITE,CLOSE sedpSAFR7 --- 写入关闭临时文件
    /data/ MOVED_FROM sedpSAFR7 --- 将临时文件移除
    /data/ MOVED_TO user10 --- 移入一个新的user10源文件

    inotify监控命令格式:
    inotifywait -mrq --timefmt "%F" --format "%T %w %f 事件信息:%e" /data -e CREATE
    create创建、delete删除、moved_to移入、close_write修改

    企业应用:防止系统重要文件被破坏
    需要用到inotify进行实时一直监控 /etc passwd /var/spool/cron/root


    3)部署sersync同步服务
    第一个里程:需要下载,保留上传到linux服务器中
    https://github.com/wsgzao/sersync
    上传linux服务器
    rz -y --- 选择需要上传的数据信息
    PS:软件尽量都统一保存在/server/tools目录中

    第二个里程:解压软件压缩包,将解压的数据进行保存
    unzip sersync_installdir_64bit.zip
    [root@nfs01 tools]# tree sersync_installdir_64bit
    sersync_installdir_64bit
    └── sersync
    ├── bin --- sersync软件命令目录
    │?? └── sersync
    ├── conf --- sersync软件配置目录
    │?? └── confxml.xml
    └── logs --- sersync软件日志目录
    [root@nfs01 tools]# mv sersync_installdir_64bit/sersync/ /usr/local/

    第三个里程:编写配置文件:
    vim conf/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程序需要监控的事件

    24 <localpath watch="/opt/tongbu">
    25 <remote ip="127.0.0.1" name="tongbu1"/>
    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="-artuz"/>
    31 <auth start="false" users="root" passwordfile="/etc/rsync.pas"/>
    32 <userDefinedPort start="false" port="874"/><!-- port=874 -->

    第四个里程:启动sersync服务程序
    [root@nfs01 bin]# export PATH="$PATH:/usr/local/sersync/bin"
    [root@nfs01 bin]# echo $PATH
    /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/sersync/bin

    参数-d: 启用守护进程模式
    参数-r: 在监控前,将监控目录与远程主机用rsync命令推送一遍
    进行同步测试
    参数-o: 指定配置文件,默认使用confxml.xml文件
    -o /usr/local/sersync/conf/confxml.xml
    -o /usr/local/sersync/conf/confxml02.xml

    sersync -dro /usr/local/sersync/conf/confxml.xml 启动实时同步服务
    yum install -y psmisc
    killall sersync 停止实时同步服务
    /etc/rc.local <-- sersync -dro /usr/local/sersync/conf/confxml.xml 开机自动启动


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

  • 相关阅读:
    ubuntu14.0 服务器webmin安装
    python如何简单的处理图片(1):打开显示
    如何在YouTube上下载视频
    Ubuntu下下载使用sublime
    IndentationError: unexpected indent
    Linux下vim显示行数
    Linux下tree的使用介绍
    Mac利用分屏spliter
    redis开机自启动脚本(linux)
    java 反射应用
  • 原文地址:https://www.cnblogs.com/huangfeng666/p/12410214.html
Copyright © 2011-2022 走看看