sersync+rsync(增量,无差异备份),resync支持多线程,效果比inotify更好,配置思想和inotify很相似

7.1、在备份服务器上安装并配置rsync服务,实现nfs共享目录,可以同步到rsync服务器上;

7.2、在nfs服务器上安装配置sersync服务,实现nfs共享目录实时同步到备份服务器上;

1、下载rpm包:

rpm -qa sersync #sersync在网络中的yum源仓库中是没有的;

wget http://down.whsir.com/downloads/sersync2.5.4_64bit_binary_stable_final.tar.gz

mkdir /application/

cd /application/

cp /var/cache/yum/sersync2.5.4_64bit_binary_stable_final.tar.gz /application

tar -xzvf sersync2.5.4_64bit_binary_stable_final.tar.gz /application/

2、以下面的格式进行:

3、confxml.xml配置文件:

<?xml version="1.0" encoding="ISO-8859-1"?>

<head version="2.5">

<host hostip="localhost" port="8008"></host>

<debug start="false"/>

<fileSystem xfs="false"/>

<filter start="false"> #过滤功能,类似于rsync中的--exclude参数

<exclude expression="(.*)\.svn"></exclude>

<exclude expression="(.*)\.gz"></exclude>

<exclude expression="^info/*"></exclude>

<exclude expression="^static/*"></exclude>

</filter>

<inotify> #监控文件属性,使用默认值

<delete start="true"/>

<createFolder start="true"/>

<createFile start="false"/>

<closeWrite start="true"/>

<moveFrom start="true"/>

<moveTo start="true"/>

<attrib start="false"/>

<modify start="false"/>

</inotify>

<sersync>

<localpath watch="/data/"> #监控的目录;

#对应的是rsync中的模块名;此配置在后面可以加多个,备份到不同的rsync备份服务器或不同的模块;

<remote ip="172.16.1.41" name="nfsbackup/"/>

<!--<remote ip="192.168.8.39" name="tongbu"/>-->

<!--<remote ip="192.168.8.40" name="tongbu"/>-->

</localpath>

<rsync>

<commonParams params="-az "/>

<auth start="true" users="rsync_backup" passwordfile="/etc/rsync.password"/> #rsync服务端的验证密码文件

<userDefinedPort start="false" port="874"/><!-- port=874 -->#自定义端口,一般不用,默认是874;

<timeout start="true" time="100"/><!-- timeout=100 -->#客户端超时100秒断开连接;

<ssh start="false"/>

</rsync>

#失败的日志收集文件

<failLog path="/application/log/rsync_fail_log.sh" timeToExecute="60"/><!--default every 60mins execute once-->

#对监控目录与目标服务器每隔一段时间进行一次整体同步,默认600分钟且不开启,根据个人情况是否开启;

<crontab start="false" schedule="600"><!--600mins-->

<crontabfilter start="false">#如果之前开启了文件过滤,这里也要设置过滤虚拟交换机

<exclude expression="*.php"></exclude>

<exclude expression="info/*"></exclude>

</crontabfilter>

</crontab>

<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">#Cdn传输

<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>

4、查看参数:

[root@nfs01 bin]# /application/sersync/bin/sersync2 -h

set the system param

execute:echo 50000000 > /proc/sys/fs/inotify/max_user_watches

execute:echo 327679 > /proc/sys/fs/inotify/max_queued_events

parse the command param

_______________________________________________________

参数-d:启用守护进程模式

参数-r:在监控前,将监控目录与远程主机用rsync命令推送一遍

参数-n: 指定开启守护线程的数量,默认为10个

参数-o:指定配置文件,默认使用confxml.xml文件

参数-m:单独启用其他模块,使用 -m refreshCDN 开启刷新CDN模块

参数-m:单独启用其他模块,使用 -m socket 开启socket模块

参数-m:单独启用其他模块,使用 -m http 开启http模块

不加-m参数,则默认执行同步程序

_______________________________________________________________

5、启动服务:

/application/sersync/bin/sersync2 -d -n 8 -r -o /application/sersync/conf/confxml.xml

6、查看服务:

[root@nfs01 data]# ps -ef | grep "sersync"| grep -v "grep"

root 1991 1 0 12:05 ? 00:00:00 /application/sersync/bin/sersync2 -d -r -n 8 -o /application/sersync/conf/confxml.xml

root 2032 1 0 12:11 ? 00:00:00 /application/sersync/bin/sersync2 -d -r -n 8 -o /application/sersync/conf/confxml.xml

root 2065 1 0 12:14 ? 00:00:00 /application/sersync/bin/sersync2 -d -r -n 8 -o /application/sersync/conf/confxml.xml

root 2108 1 0 12:18 ? 00:00:00 /application/sersync/bin/sersync2 -d -r -n 8 -o /application/sersync/conf/confxml.xml

root 2126 1 0 12:19 ? 00:00:00 /application/sersync/bin/sersync2 -d -r -n 8 -o /application/sersync/conf/confxml.xml

root 2176 1 0 12:23 ? 00:00:00 /application/sersync/bin/sersync2 -d -r -n 8 -o /application/sersync/conf/confxml.xml

root 2252 1 0 12:26 ? 00:00:00 /application/sersync/bin/sersync2 -d -r -n 8 -o /application/sersync/conf/confxml.xml

root 2334 1 0 12:27 ? 00:00:00 /application/sersync/bin/sersync2 -d -r -n 8 -o /application/sersync/conf/confxml.xml

7、加入到开机自启动服务中:

echo ‘/application/sersync/bin/sersync2 -d -r -n 8 -o /application/sersync/conf/confxml.xml’ >/etc/rc.local

7、resync实时备份的更多相关文章

  1. 通过rsync+inotify实现数据的实时备份

    我讲到过利用rsync实现数据的镜像和备份,但是要实现数据的实时备份,单独靠rsync还不能实现,本文就讲述下如何实现数据的实时备份. 一.rsync的优点与不足 与传统的cp.tar备份方式相比,r ...

  2. 工作随笔——使用svnsync实时备份SVN版本库

    前段时间把SVN版本库从win迁移到了Linux上,没隔几天那台win的磁盘就严重坏道了....这TMD什么运气! 花费了点时间研究了下svn自己的同步工具.写个日志记录下. 注意:svnsync要求 ...

  3. gitlab实时备份方案(非官方命令)

    gitlab自带的备份功能做不到实时备份,为了尽可能减少意外情况导致的丢失数据,自己搞了一个实时备份的功能. 备份的大头主要是两部分,数据库和代码库.数据库由DBA配置主备. 仓库经过测试,通过lsy ...

  4. ansible-playbook 实战案例 全网备份 实时备份

    目录 ansible-playbook 基础介绍 1.YAML三板斧 2. ansible playbook 安装apache 示例 案例 全网备份 实时备份 环境规划 目录规划 base.yaml ...

  5. rsync 远程同步 实时同步备份 两种免交互的方式实现实时备份

    rsync 远程同步: 一款快速增量备份工具 Remote Sync,远程同步 支持本地复制,或者与其他SSH.rsync主机同步 作用:做数据备份 备份方式:      完全备份      增量备份 ...

  6. 实现MySQL数据库的实时备份

    实现MySQL数据库的实时备份 使用MySQL Replication 吴剑 2018-08-03 原创文章,转载必需注明出处:http://www.cnblogs.com/wu-jian 吴剑 ht ...

  7. 实时备份工具之inotify+rsync

    1.inotify简介 inotify 是一个从 2.6.13 内核开始,对 Linux 文件系统进行高效率.细粒度.异步地监控机制, 用于通知用户空间程序的文件系统变化.可利用它对用户空间进行安全. ...

  8. ITDB系统搭建及实时备份

    ITDB系统搭建及实时备份 ITDB简介 ITDB一款来自希腊的开源IT资产管理系统,它是基于Web的IT资产信息管理系统.对于那些IT设备较多而又缺少管理IT资产信息工具的公司,ITDB是一个不错的 ...

  9. 通过rsync+inotify实现数据的实时备份(多台备份机)

    在前面的博文中,我讲到过利用rsync实现数据的镜像和备份,但是要实现数据的实时备份,单独靠rsync还不能实现,本文就讲述下如何实现数据的实时备份. 一.rsync的优点与不足  与传统的cp.ta ...

随机推荐

  1. [python3.7]列表

    >>> a['aaa']>>> b=['aasd','sss','cc']>>> a.extend(b)>>> a['aaa', ...

  2. shell脚本就是由Shell命令组成的执行文件,将一些命令整合到一个文件中,进行处理业务逻辑,脚本不用编译即可运行。它通过解释器解释运行,所以速度相对来说比较慢。

    shell脚本?在说什么是shell脚本之前,先说说什么是shell. shell是外壳的意思,就是操作系统的外壳.我们可以通过shell命令来操作和控制操作系统,比如Linux中的Shell命令就包 ...

  3. Linux 忘记密码解决方法——RedHat

    [RedHat7.4版本] 1.将忘记密码的rhel7.4版本的虚拟机打开 2.等3秒左右出现这个画面时,用方向键,将光标移动到第二栏处,接着按"e"键 3.接在在linux16这 ...

  4. win10家庭版升级 到win10企业版

    成功升级3小时  20200124 拿到电脑 win10家庭版 不会用 找admin都找不到只能用企业版 升级win10家庭版 到win10企业版 在msdn下载win10企业版iso iso 文件管 ...

  5. Java8 Period 类与 Duration 类 用法详解

    引言 Java 8 中引入了两个与日期相关的新类: Period :基于日期值 Duration:基于时间值 它们最大的作用就不需要你自己复杂的计算关于两个年月日之间的相差的时间或日期啦. Perio ...

  6. Flink-cdc实时读postgresql

    由于公司业务需要,需要实时同步pgsql数据,我们选择使用flink-cdc方式进行 架构图: 前提步骤: 1,更改配置文件postgresql.conf # 更改wal日志方式为logicalwal ...

  7. 程序"三高"解决方案

    0. 程序三高 1. 缓存 2. 预处理和延后处理 3. 池化 3.1 内存池 3.2 线程池 3.3 连接池 4. 异步(回调) 5. 消息队列 5.1 服务解耦 5.2 异步处理 5.3 流量削峰 ...

  8. 如何设计 API 接口,实现统一格式返回?

    文章目录: 目录 前后端接口交互 接口返回值约定 返回值规范 正确返回 错误返回 统一定义错误码 错误码规范 Controller 层如何用? 正确返回 错误返回 详细代码实现 错误码 Control ...

  9. Java List去重以及效率分析

    List去重无非几种方法: 下面文章提供的两种: https://blog.csdn.net/u012156163/article/details/78338574, 以及使用List.stream. ...

  10. GO学习-(38) Go语言结构体转map[string]interface{}的若干方法

    结构体转map[string]interface{}的若干方法 本文介绍了Go语言中将结构体转成map[string]interface{}时你需要了解的"坑",也有你需要知道的若 ...