rsync + Sersync 实现增量同步

需求:同步服务器数据到本地

环境:已配置openvpn 让服务器与本地服务器可以处在同一网络环境

服务器:客户端(192.168.0.67) 服务端(192.168.0.66)

解决方案:监听服务器端文件夹增删改,推送实时变化数据到客户端,达到备份服务端数据的需求

客户端配置

需安装rsync

  1. 首先卸载本机rsync

    yum remove -y rsync
    
  2. 安装rsync

    yum install -y rsync
    # 查看当前版本
    rsync --version
    
  3. 编辑相应配置文件

    vim /etc/rsyncd.conf
    # 配置文件如下
    #rsyncd.conf start##
    uid = root
    gid = root
    use chroot = no
    max connections = 200
    timeout = 300
    pid file = /var/run/rsyncd.pid
    lock file = /var/run/rsync.lock
    log file = /var/log/rsyncd.log
    ignore errors
    read only = false
    list = false
    auth users = rsync_backup
    secrets file = /etc/rsyncd.secrets
    [backup]
    # 需要备份的路径
    path = /backup
    ##rsync_config____________end
    
  4. 写登录验证密码文件

    echo "rsync_bakup:123456" /etc/rsyncd.secrets
    # 更改文件权限
    chmod 600 /etc/rsyncd.secrets
    
  5. 启动服务

    rsync --daemon
    # 关闭服务
    pkill rsync
    
  6. 开放873 端口访问权限

    firewall-cmd --zone=public --add-port=873/tcp --permanent
    # 重启防火墙
    firewall-cmd --reload
    
  7. 添加访问主机host

    vim /etc/hosts
    # 添加: '192.168.0.66   local-66' 到文件末尾
    
  8. 文件传输失败查看日志,并相应解决

    tail -f  /var/log/rsyncd.log
    

客户端配置结束

服务端配置

需安装rsync ,sersync

  1. 首先卸载本机rsync

    yum remove -y rsync
    
  2. 安装rsync

    yum install -y rsync
    
  3. 写登录密码文件(没有文件先进行创建)

    echo "123456" /etc/rsyncd.password
    # 设置密码文件权限
    chmod 600 /etc/rsyncd.password
    
  4. 下载sersync

    wget https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/sersync/sersync2.5.4_64bit_binary_stable_final.tar.gz
    # 若无法下载则到浏览器下载然后再复制到服务器
    
  5. 解压并将对应文件拷贝至对应文件夹

    mkdir -p /application/sersync/{bin,conf,logs}
    tar zxvf sersync2.5.4_64bit_binary_stable_final.tar.gz
    mv  GNU-Linux-x86/sersync2 /application/sersync/bin
    mv  GNU-Linux-x86/confxml.xml /application/sersync/conf
    
  6. 配置环境变量

     vim  /etc/profile.d/sersync.sh# 添加如下内容        
    
     #!/bin/shexport PATH=$PATH:/application/sersync/bin
    
     source /etc/profile.d/sersync.sh   
    
  7. 备份配置文件然后修改

    cp /application/sersync/conf/confxml.xml /application/sersync/conf/confxml.xmlbk
    vim /application/sersync/conf/confxml.xml
    # 修改成如下内容
    
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <head version="2.5"><!--设置本地IP和端口--> <host hostip="localhost" port="8008"></host><!-- 开启DUBUG模式-->     <debug start="false"/><!-- 开启xfs文件系统-->    <fileSystem xfs="false"/><!-- 同步时忽略推送的文件(正则表达式),默认关闭-->    <filter start="false"><exclude expression="(.*)\.svn"></exclude><exclude expression="(.*)\.gz"></exclude><exclude expression="^info/*"></exclude><exclude expression="^static/*"></exclude></filter><!-- 设置要监控的事件-->    <inotify><!-- 若不监听删除操作 设置为false-->     <delete start="false"/><!-- 设置为false 将不会监听到文件夹下发生的变化--> <createFolder start="true"/><!-- inotify监控参数,对于大多数应用,可以把createFile设置为false来提高性能,减少rsync通讯,因为拷贝文件到监控目录会产生create事件与close_write事件,所以如果关闭create事件,只监控文件拷贝时结束的事件close_write,同样可以实现文件完整同步。-->    <createFile start="false"/><closeWrite start="true"/><moveFrom start="true"/><moveTo start="true"/><attrib start="false"/><modify start="false"/></inotify><sersync><!-- 本地监视目录路径 -->   <localpath watch="/application/rsync/data"><!--定义同步Server ip和模块 -->   <remote ip="192.168.0.67" name="backup"/></localpath><rsync><!-- rsync指令参数 -->   <commonParams params="-artuz"/><!-- rsync同步认证 -->       <auth start="true" users="rsync_backup" passwordfile="/etc/rsyncd.password"/><!-- 设置rsync远程服务端口,非默认端口需要打开自定义(若开启rsync+ssh, 则这里需定义SSH端口) -->       <userDefinedPort start="false" port="874"/><!-- port=874 --><!-- 设置超时时间 -->       <timeout start="false" time="100"/><!-- timeout=100 --><!-- 设置rsync+ssh加密传输模式,默认关闭,开启需设置SSH加密证书 -->       <ssh start="false"/></rsync><!-- sersync传输失败日志脚本路径,每隔60会重新执行该脚本,执行完毕会自动清空。-->    <failLog path="/application/sersync/logs/rsync_fail_log.sh" timeToExecute="60"/><!--default every 60mins execute once--><!-- 设置rsync定时传输,默认关闭 -->   <crontab start="false" schedule="600"><!--600mins--><crontabfilter start="false"><exclude expression="*.php"></exclude><exclude expression="info/*"></exclude></crontabfilter></crontab><!-- 设置sersync传输后调用name指定的插件脚本,默认关闭 -->   <plugin start="false" name="command"/></sersync><!-- 插件脚本范例 -->  <plugin name="command"><param prefix="/bin/sh" suffix="" ignoreError="true"/>    <!--prefix /opt/tongbu/mmm.sh suffix--><filter start="false"><include expression="(.*)\.php"/><include expression="(.*)\.sh"/></filter></plugin><!-- 插件脚本范例 --><plugin name="socket"><localpath watch="/opt/tongbu"><deshost ip="192.168.138.20" port="8009"/></localpath></plugin><plugin name="refreshCDN"><localpath watch="/data0/htdocs/cms.xoyo.com/site/"><cdninfo domainname="ccms.chinacache.com" port="80" username="xxxx" passwd="xxxx"/><sendurl base="http://pic.xoyo.com/cms"/><regexurl regex="false" match="cms.xoyo.com/site([/a-zA-Z0-9]*).xoyo.com/images"/></localpath></plugin>
    </head>
    
  8. 启动Sersync

    /application/sersync/bin/sersync2 -d -r -o /application/sersync/conf/confxml.xml
    
  9. 测试

    cd /application/rsync/data
    for f in `seq 10`;do touch $f;done
    # 完成后查看服务端对应模块路径下是否有相应文件,若同步表示成功。
    

服务端配置结束

linux 实现文件增量同步相关推荐

  1. 如何实现文件增量同步——算法

    问题: 如何增量同步文件,例如一个文本文件有10M,分别存放在A,B两个地方,现在两个文件是完全一样的,但是我马上要在A上对这个文件进行修改,B如何实现自动和A上的文件保持一致,并且网络的传输量最少. ...

  2. linux间文件实时同步(syncthing) ---带历史版本“后悔药”

    一.概念简介 syncthing 一款开源免费的数据同步工具,基于P2P的跨平台文件同步工具,通过tcp建立设备连接,再通过TLS进行数据安全传输,支持公网与局域网搭建.支持单双向同步与历史版本控制- ...

  3. linux写文件操作同步,linux 可执行文件与写操作的同步问题(文件读写操作产生的锁机制)...

    当一个可执行文件已经为write而open时,此时的可执行文件是不允许被执行的.反过来,一个文件正在执行时,它也是不允许同时被write模式而open的.这个约束很好理解,因为文件执行和文件被写应该需 ...

  4. Linux服务器文件夹同步到Windows10文件夹中

    1.首先在Windows系统中创建一个文件夹,点击到[共享],配置好共享文件夹,用来接收Lunix系统的备份文件. 2.Windows配置好之后,打开Lunix服务器创建备份的文件夹/data/bac ...

  5. 群晖增量同步Linux文件夹,用自定义脚本实现群晖NAS中本地文件夹之间的增量同步复制...

    用自定义脚本实现群晖NAS中本地文件夹之间的增量同步复制 2021-02-21 15:39:44 60点赞 646收藏 52评论 使用情景:群晖DS918+,两块12T RAID1存重要数据,1块2T ...

  6. linux rsync文件夹增量同步

    就是说用rsync去同步一个很大的文件夹几十G,第一次的时候会同步几十G的数据,然后又更新/删除的时候只需要同步跟新.删除的文件)用的是xxx算法,这不是我们需要管的,大多说情况我们需要知道怎么用就行 ...

  7. python实现文件夹增量同步

    工作中,经常要把windows的文件夹同步到linux上.xftp也可以,sublime也有远程上传的插件,但没找到支持增量的...大量时间花在找插件,装环境...然后一怒之下,自己东拼西凑了一下. ...

  8. 运维之道 | Linux rsync 文件同步、Inotify远程实时同步

    Linux rsync 文件同步服务器 与传统的cp.scp.tar备份方式相比,rsync具有安全性高.备份迅速.支持增量备份等优点,通过rsync可以解决对实时性要求不高的数据备份需求,例如定期的 ...

  9. 如何在linux下用rsync同步文件以及它的用法和scp的用法

    如何在linux下用rsync同步文件以及它的用法和scp的用法 2010年06月06日 root@legend-laptop:/home/legend/httpd~/cgi-bin# rsync - ...

最新文章

  1. 计算缺失的元素 java_计算包含缺失值的相关系数
  2. 防火墙软件测试工资,防火墙的性能测试
  3. Google Earth的十个常用技巧应用
  4. leveldb登山之路——cache
  5. 多元回归和简单回归的区别_技术多元化的关键比您想象的要简单
  6. [wp7游戏]wp7~~~连连看 游戏~~集合贴~~
  7. 深入解析WINDOWS操作系统
  8. revit2016注册表删除_Revit怎么卸载,如何把revit彻底卸载删除干净重新安装的方法?【转载】...
  9. 冲突域和广播域的理解
  10. b站python up主_python爬取B站up主全部视频封面
  11. 将Final Cut Pro X工程文件导入Premiere图文版小白级操作教程
  12. 技术党求生骚操作!手把手教你做一只口红色号识别器!
  13. 设计模式—策略模式(Strategy Pattern)
  14. 爱上开源之一款查询docker容器启动命令的工具
  15. 数据结构——栈的使用
  16. 宽依赖和窄依赖_【Spark】SparkCore解析(一):宽依赖和窄依赖
  17. 计算机主机的是指什么,电脑基本操作包括哪些 电脑的基本的操作是指什么
  18. 【报告分享】2020美好城市指数:短视频与城市繁荣关系白皮书(附下载)
  19. Datax和Kettle使用场景的对比
  20. 无人零售货柜并入行业变革版图,带来智能化提升和消费升级

热门文章

  1. 行星狩猎”,AI已经出手
  2. LaTeX软件安装和使用说明
  3. 在win7上利用虚拟磁盘隐藏文件
  4. 计算机磁盘管理给优盘分区,给U盘分区,怎么给U盘分区
  5. (转载)Xmind 8 pro 软件破解版安装过程
  6. 华南理工大学计算机组成原理重点复习
  7. Scala 系列(六)—— 常用集合类型之 List Set
  8. 性能优化:内存管理之手动JIT编译
  9. 信息系统项目文案学习,常见高级词汇整理记录
  10. PDA-BT-W80G