zoukankan      html  css  js  c++  java
  • rsync + sersync 数据同步

    、rsync+inotify与rsync+sersync架构的区别

    1、rsync+inotify

     a、inotify只能记录下被监听的目录发生了变化(增,删,改)并没有把具体是哪个文件或者哪个目录发生了变化记录下来;

     b、rsync在同步的时候,并不知道具体是哪个文件或目录发生了变化,每次都是对整个目录进行同步,当数据量很大时,整个目录同步非常耗时(rsync要对整个目录遍历查找对比文件),因此效率很低

    2、rsync+sersync

     a、sersync可以记录被监听目录中发生变化的(增,删,改)具体某个文件或目录的名字;

     b、rsync在同步时,只同步发生变化的文件或目录(每次发生变化的数据相对整个同步目录数据来说很小,rsync在遍历查找对比文件时,速度很快),因此效率很高。

    二、 rsync+sersync 数据同步

    1. sersync 监控指定目录 文件事件变化;

    2. sersync 调用 rsync 客户端命令将更新的目录和文件增量同步到 rsync 服务器,实现数据同步;

     安装 rsync

    dnf install  rsync
    rpm -qa rsync
    rsync --version

     rsync server

    rsync 配置文件

    cat /etc/rsyncd.conf 
    uid=root
    gid=root
    max connections=100
    use chroot=true
    log file=/var/log/rsyncd.log
    motd file=/etc/rsyncd.motd
    transfer logging=true
    hosts allow=192.168.99.0/24
    [data]
    path=/data
    comment=data
    read only =no
    list=yes
    auth users=root
    secrets file=/etc/rsyncd.pwd
    

     rsync 配置文件参数

    uid=root        # 服务器端传输文件时,要发哪个用户和用户组来执行
    gid=root        # 服务器端传输文件时,要发哪个用户和用户组来执行
    max connections=100      # 客户端最多连接数
    use chroot=true          
    # 用 chroot ,在传输文件之前,服务器守护程序在将 chroot 到文件系统中的目录中,这样
    #做的好处是可能保护系统被安装漏洞侵袭的可能。缺点是需要超 级用户权限。另外对符号链接
    #文件,将会排除在外。也就是说,你在 rsync 服务器上,如果有 符号链接,你在备份服务器
    #上运行客户端的同步数据时,只会把符号链接名同步下来,并不会同 步符号链接的内容
    log file=/var/log/rsyncd.log        #rsync 服务器的日志
    motd file=/etc/rsyncd.motd         
    # 定义motd file 路径 rsyncd.motd 内容是定义服务器信息的,用户登录时会看到这个信息
    transfer logging=true             # 传输文件日志
    hosts allow=192.168.99.0/24       # 允许的 ip 地址
    [data]                  # 模块名
    path=/data              # 同步的目录
    exclude=web             # 同步目录中去除的目录,即 web 不同步
    comment=data            # 注释,注释内容可自己定义,起提示作用
    read only=no            # 只读选择,如为 yes 则不让客户端上传文件到服务器上
    list=yes                # 服务器上提供同步数据的目录是否显示
    auth users=root         # 认证用户是 root
    secrets file=/etc/rsyncd.pwd       
    # 密码文件保存路径,注意此文件的密码要与 223 上的 rsyncd.pwd2 文件中密码相同,权限
    #必须设置为600,用来认证客户端的秘钥文件 格式 USERNAME:PASSWD
    #注意:配置文件里不能有注释信息
    

     rsync 密码文件

    echo "root:123456" >/etc/rsyncd.pwd       
    echo "123456" >/etc/rsyncd.pwd2
    

     修改权限

    chmod 600 /etc/rsyncd.pwd                   
    chmod 600 /etc/rsyncd.pwd2
    

     systemctl 管理 rsync 服务

    /etc/sysconfig/rsyncd

    vim /etc/sysconfig/rsyncd 
    OPTIONS=""
    

     rsyncd.service

    cat  /lib/systemd/system/rsyncd.service
    [Unit]
    Description=fast remote file copy program daemon
    ConditionPathExists=/etc/rsyncd.conf
    
    [Service]
    EnvironmentFile=/etc/sysconfig/rsyncd
    ExecStart=/usr/bin/rsync --daemon --no-detach "$OPTIONS"
    
    [Install]
    WantedBy=multi-user.target
    

     rsyncd 启动

    systemctl   start  rsyncd
    systemctl   enable  rsyncd
    

    rsync 端口 进程

    netstat  -auntlp |grep 873
    ps -ef |grep rsync
    

     firewall

    firewall-cmd    --add-port=873/tcp --permanent
    firewall-cmd    --reload
    

    rsync client

    rsync 本地磁盘同步数据

    rsync -vlzrtogp /mnt/data /backups
    rsync -vlzrtogp /mnt/data/ /backups
    

    /mnt/data 表示将整个 /data目录复制到目标目录

    /mnt/data/ 表示将 data 目录中的所以内容复制到目标目录

    rsync 远程同步

    rsync -vlzrtopg --progress --delete  /mnt/data/ root@192.168.99.227::data --password-file=/etc/rsyncd.pwd2
    

     rsync 数据同步限流

    rsync -vlzrtogp --progress --delete --bwlimit=1000 远程文件 本地文件 //限制为1000kBytes/s
    rsync -vlzrtogp --progress --delete --bwlimit=2048 本地文件 远程文件 //限制为2M/s
    

     rsync client 参数

    -v, --verbose   详细输出模式
    -l, --links           保持符号链接文件
    -z, --compress   在传输文件时进行压缩处理
    -r, --recursive   对子目录以递归模式处理
    -t, --times           保持文件时间信息
    -o, --owner           保持文件属主信息 (super-user only)
    -p, --perms           保持文件权限
    -g, --group           保持文件属组信息
    
    --progress           在传输时显示传输过程 
    --delete             删除目标端比本地端多余得文件目录保持数据一致性
    --exclude=web        指定排除一个不需要传输的文件匹配模式
    --exclude-from=FILE  从 FILE 中读取排除规则
    --include=PATTERN   指定需要传输的文件匹配模式
    --include-from=FILE  从 FILE 中读取包含规则
    --password-file=FILE 从 FILE 中读取口令,以避免在终端上输入口令
    --bwlimit=RATE       限制传输 I/O 带宽
    

    rsync + sersync

    安装 rsync

    dnf install  rsync
    

     rsync 密码文件

    echo "123456" >/etc/rsyncd.pwd2
    

     修改权限

    chmod 600 /etc/rsyncd.pwd2
    

     下载 sersync

    cd /opt
    wget https://sersync.googlecode.com/files/sersync2.5.4_64bit_binary_stable_final.tar.gz
    

     解压 sersync

    tar -zxvf sersync2.5.4_64bit_binary_stable_final.tar.gz  
    mv GNU-Linux-x86 /usr/local/sersync
    

     sersync 配置文件

    vim /usr/local/sersync/confxml.xml
    

     启动  sersync

    /usr/local/sersync/sersync2  -d -r -o  /usr/local/sersync/confxml.xml

    ps -ef |grep sersync2

     sersync  变量

     echo "export PATH=$PATH:/usr/local/sersync" >>/etc/profile
     source /etc/profile
    

    数据同步测试

    源服务器创建文件

     目的服务器查看

     rsync 数据同步日志

    sersync 多实例

    监控多个目录进行数据同步时,分别配置不同的 sersync 配置文件即可

    /usr/local/sersync/sersync2  -d -r -o  /usr/local/sersync/nginx_confxml.xml
    /usr/local/sersync/sersync2  -d -r -o  /usr/local/sersync/zabbix_confxml.xml
    

    转自:https://mp.weixin.qq.com/s/QJGzmUm-psE1GCVR1Zz-lA

  • 相关阅读:
    后台线程处理数据,如何实时更新UI(datagridview)多线程同步问题
    DataGridView设置行高
    C#打开外部文件,如txt文件
    20120621第一天_复习与测试\04continue
    关于C#正则表达式MatchCollection类的总结
    关于sqlite中的一个错误 “database is locked"
    UI中 加个timer 写个while true的方法 不断获取run的对象
    最近帮公司开发一个邮件营销软件 用到XPTable 但找了很多方法 摸索了很久都不知道如何更新进度条 不过在国外的一个网站 终于找到答案了
    C# 简单的往txt中写日志,调试时很有用 【转】
    输入要匹配的内容和正则表达式规则 返来单个匹配的内容 正则表达式方法 常用
  • 原文地址:https://www.cnblogs.com/zjz20/p/13305924.html
Copyright © 2011-2022 走看看