Linux实时同步服务

实时同步服务
  • 实现实时同步数据的原理
  • 实时同步数据的方法
    • 部署好rsync守护进程服务
    • 部署好inotify监控服务
    • 部署好sersync实时同步服务
  • 实现实时同步数据的验证
实时同步服务原理/概念
  • 需要部署好rsync守护进程服务,实现数据传输
  • 需要部署好inotify服务,实现目录中数据变化监控
  • 将rsync服务和inotify服务建立联系,将变化的数据进行实时备份传输
实时同步服务部署
  • 部署好rsync守护进程

    • 服务端配置操作
    • 客户端配置操作
  • 部署inotify监控服务

    • 安装软件

      yum install -y inotify-tools
      
    • 熟悉命令的使用

      • 监控目录数据信息变化

        /usr/bin/inotifywait
        
        #使用方法
        inotifywait [参数] 监控的目录
        
        #参数:
        -m:实现一直监控目录的变化
        -r:进行递归监控
        -q:尽量减少信息的输出
        --format:指定输出信息的格式
        --timefmt:指定输出的时间信息格式
        -e:指定监控的事件信息(增删改移入)
        
        inotifywait -mrq /data
        
      • 对监控的变化信息进行统计

        /usr/bin/inotifywatch
        
  • 部署sersync服务

文件监控信息输出
  • 创建文件监控信息输出
    • 一个文件被创建
    • 打开创建的文件
    • 修改文件的属性信息
    • 关闭文件
  • 删除文件监控信息输出
    • /data/ delete user13
  • 修改文件监控信息输出
    • /data/ create user10
    • /data/ open user10
    • /data/ modify user10
    • /data/ close_write,close user10
sed命令修改文件原理
  • 打开文件
  • 创建一个临时文件(放在内存中)
  • 临时文件进行打开
  • 读取源文件内容
  • 修改临时文件
  • 临时文件属性变化
  • 不编辑直接关闭源文件
  • 写入关闭临时文件
  • 将临时文件移除
  • 移入一个新的user10源文件
指定监控那些事件
inotifywait -mrq /data -e CREATE
修改输出信息
inotifywait -mrq --timefmt "%F" --format "%T %w %f 事件信息:%e" /data -e CREATE
2023-01-10 /data/data01 oldboy05.txt 时间信息:/data -e CREATE
需要监控的事件
  • create:创建
  • delete:删除
  • moved_to:移入
  • close_write:修改
企业应用:防止系统重要文件被破坏
  • 需要用到inotify进行实时一直监控

    /etc/passwd
    /var/spool/cron/root
    
如果yum安装没有inotify-tools
  • 没有对yum进行优化

    cd /etc/yum.repos.d/
    ls
    目录中没有epel.repo这个文件
    
部署sersync同步服务
  • 下载链接

    https://github.com/wsgzao/sersync
    
  • 上传linux服务器

    rz -y 
    
  • 解压软件压缩包

    unzip 
    
  • 移动解压后的目录

    mv sersync/ /usr/local
    
  • 编写配置文件

    vim conf/confxml.xml
    
    6~11行,默认关闭,进行排除,哪些文件不进行备份
    <filter start="false”>
    	<exclude expression="(.*)\.svn"></exclude>
    	<exclude expression="(.*)\.gz12</exclude>
    	<exelude expression="^info/*"> </exclude>
    	<exclude expression="^static/*</exclude>
    </f11ter>
    
    12~21行,定义inotify程序需要监控的事件
    
    24~32行
    watch:指定监控的目录 后面有没有斜线都行,最终默认是有斜线的
    ip:指定备份服务器地址
    name:指定备份服务器模块信息
    params:指定rsync推送命令参数 默认az,并且附带--delete
    users:指定rsync认证用户
    passwordfile:指定rssync认证密码文件
    记住前面的false要改成true
    
  • 启动sersync服务

    • 添加权限

      cd /usr/local/sersync/bin
      chmod a+x sersync
      a+x:所有用户都添加上x权限
      
    • 查看参数

      sersync -h
      参数-d:启用守护进程服务
      -r:监控前,将监控目录与远程主机用rsync命令推送一遍
      		进行同步测试
      -o:指定配置文件,默认使用confxml.xml
      
    • 启动服务

      sersync -dro /usr/local/sersync/conf/confxml.xml 
      
    • 停止服务

      yum install -y psmisc
      killall sersync
      
实时同步服务概念总结
  • 实现实时同步服务的原理
    • 监控目录数据变化:inotify
    • 将数据进行传输:rsync
    • 将监控和传输进行整合:sersync
  • 实现实时同步部署方法
    • 部署rsync守护进程
    • 部署inotify软件
    • 部署sersync软件
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值