1. Rsync+inotify

  1. 功能要求

    通过rsync+inotify将数据库指定目录实时同步到备份服务器。

  2. 环境说明

    M:192.168.10.11 数据库服务器

    S:192.168.10.13 备份服务器

  3. 备份服务器操作

    # yum -y install rsync

    # useradd rsync -s /sbin/nologin -M

    # mkdir -pv /kazihuo/bak

    # chown rsync.rsync /kazihuo/bak

    # cat /etc/rsyncd.conf

    pid file = /var/run/rsyncd.pid                                                                                                                                                                   [Rsc-bak]

    uid = rsync

    gid = rsync

    path = /kazihuo/bak/

    max connections = 200

    log file = /var/log/rsyncd.log

    auth users = rsync-k

    secrets file = /etc/rsync.password

    # cat /etc/rsync.password

    rsync-k:000000

    # chomd 600 /etc/rsync.password

    # rsync --daemon

    # ss -autnpl |grep rsync

    tcp LISTEN 0 5 *:873 *:* users:(("rsync",pid=2383,fd=4))

    tcp LISTEN 0 5 :::873 :::* users:(("rsync",pid=2383,fd=5))

  4. 数据库服务器操作

    # ls /proc/sys/fs/inotify/

    max_queued_events max_user_instances max_user_watches

    #显示以上三个文件则表明支持inotify

    # wget http://github.com/downloads/rvoicilas/inotify-tools/inotify-tools-3.14.tar.gz

    # tar axvf inotify-tools-3.14.tar.gz

    # cd inotify-tools-3.14

    # ./configure --prefix=/usr/local/inotify

    # make && make install

    # cd /usr/local/inotify/bin/

    # ./inotifywait –help

    -r –recursive

    #递归查询目录

    -q –quiet

    #打印监控事件的信息

    -m –monitor

    #始终保持事件监听状态

    --excludei

    #排除文件或目录时,不区分大小写

    --timefmt

    #指定时间输出的格式

    --format

    #打印使用指定的输出类似格式字符串

    -e –event

    #指定需要监控的事件,如下:

    EVENT:

    access #文件或目录被访问

    modify #文件或目录被修改

    attrib #文件或目录属性被改变

    close #文件或目录封闭

    open #文件或目录被打开

    moved_to #文件或目录被移动至另外一个目录

    move #文件或目录移动

    create #文件或目录被创建在当前目录

    delete #文件或目录被删除

    umount #文件系统被卸载

    # mkdir -pv /root/ka #创建本地监控目录

    # cat /etc/rsync.password

    000000

    # chmod 600 /etc/rsync.password                                                                                                                                                                                                                                                                       # cat /scripts/inotify.sh

    #!/bin/bash

    # Defined parameter

    host01=192.168.10.13 #inotify-slave的ip地址

    src=/root/ka #本地监控的目录

    dst=Rsc-bak #inotify-slave的rsync服务的模块名

    user=rsync-k #inotify-slave的rsync服务的虚拟用户

    rsync_passfile=/etc/rsync.password #本地调用rsync服务的密码文件

    inotify_home=/usr/local/inotify #inotify的安装目录

    #Judge

    if [ ! -e "$src" ] || [ ! -e "${rsync_passfile}" ] || [ ! -e "${inotify_home}/bin/inotifywait" ] || [ ! -e "/usr/bin/rsync" ];then

    echo "Check File and Folder"

    fi

    ${inotify_home}/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f' -e modify,delete,create,attrib $src | while read files

    do

    cd $src && rsync -arz --delete ./ --timeout=100 $user@$host01::$dst --password-file=${rsync_passfile} >/dev/null 2>&1

    done

    # nohup /scripts/inotify.sh &

  5. 功能测试操作

    [root@M ~]# mkdir /root/ka/ccc

    [root@S ~]# tail -f /var/log/rsyncd.log

    2017/12/19 20:15:22 [12233] rsync to Rsc-bak/ from rsync-k@UNKNOWN (192.168.10.11)

    2017/12/19 20:15:22 [12233] receiving file list

    2017/12/19 20:15:22 [12233] sent 84 bytes received 207 bytes total size 973

    [root@S ~]# ls /kazihuo/bak/

    ccc

    注:只有当源目录下文件或目录发生变化(增、删、改)时,相应的备份服务器才会执行实时同步动作!

Centos7数据实时同步的更多相关文章

  1. CentOS7下Rsync+sersync实现数据实时同步

    近期公司要上线新项目,后台框架选型我选择当前较为流行的laravel,运行环境使用lnmp. 之前我这边项目tp32+apache,开发工具使用phpstorm. 新建/编辑文件通过phpstorm配 ...

  2. centos7服务搭建常用服务配置之二:Rsync+sersync实现数据实时同步

    目录 1.RSYNC数据备份 1.1 rsync服务简介 1.2 rsync特点和优势 1.3 rysnc运行模式简介 1.4 数据同步方式 2 Rsync实验测试 2.1 实验环境说明 2.2 服务 ...

  3. 项目实战:rsync+sersync实现数据实时同步

    一.组网介绍 本次实验使用两台主机: qll251 角色:Rsync server + Sersync server qll252 角色: Rsync client 本次实验采用CentOS7.7系统 ...

  4. Linux下Rsync+sersync实现数据实时同步

    inotify 的同步备份机制有着缺点,于是看了sersync同步,弥补了rsync的缺点.以下转自:http://www.osyunwei.com/archives/7447.html 前言: 一. ...

  5. sersync实现数据实时同步

    1.1 第一个里程碑:安装sersync软件 1.1.1 将软件上传到服务器当中并解压 1.上传软件到服务器上 rz -E 为了便于管理上传位置统一设置为 /server/tools 中 2.解压软件 ...

  6. 基于netcore实现mongodb和ElasticSearch之间的数据实时同步的工具(Mongo2Es)

    基于netcore实现mongodb和ElasticSearch之间的数据实时同步的工具 支持一对一,一对多,多对一和多对多的数据传输方式. 一对一 - 一个mongodb的collection对应一 ...

  7. Mysql数据实时同步

    企业运维的数据库最常见的是 mysql;但是 mysql 有个缺陷:当数据量达到千万条的时候,mysql 的相关操作会变的非常迟缓; 如果这个时候有需求需要实时展示数据;对于 mysql 来说是一种灾 ...

  8. CentOS 6.5 rsync+inotify实现数据实时同步备份

    CentOS 6.5 rsync+inotify实现数据实时同步备份 rsync    remote sync 远程同步,同步是把数据从缓冲区同步到磁盘上去的.数据在内存缓存区完成之后还没有写入到磁盘 ...

  9. sersync基于rsync+inotify实现数据实时同步

    一.环境描述 需求:服务器A与服务器B为主备服务模式,需要保持文件一致性,现采用sersync基于rsync+inotify实现数据实时同步 主服务器A:192.168.1.23 从服务器B:192. ...

随机推荐

  1. TableLayoutPanel居中和单元格内元素居中

    在后台程序新建一个TableLayoutPanel 添加到form中,默认显示在左上角,想了很多让它居中的办法,在网上找了不少 最好的是: winform要设置控件的位置有3种: 1.控件的ancho ...

  2. QT creator 其他资源(image)的添加以及简单利用

    QT creator 添加一些资源文件  :https://www.cnblogs.com/cszlg/p/3234786.html(转自园子) 补充: 补充:如果要给生成的exe可执行文件更换一个自 ...

  3. Linux内核开发之将驱动程序添加到内核

    驱动程序添加到内核 一.概述: 在Linux内核中增加程序需要完成以下三项工作: 1.将编写的源代码复制到Linux内核源代码的相应目录 2.在目录的Kconfig文件中增加新源代码对应项目的编译配置 ...

  4. Davinci DM6446开发攻略——DSP开发工程建立

    前段时间一直忙一个项目,同时在生活上时时提防和抵抗中国地沟油.国外核心转基因调和油.大豆油.色拉油.大米玉米.可怕的喂药鱼.药水泡农药喷无虫咬的青菜,所以没时间打理自己的博客,让开发攻略停顿了一段时间 ...

  5. VxWorks镜像简介

    VxWorks镜像可分为三类:   可加载型VxWorks镜像:存储在开发机上,运行在板上RAM中   基于ROM的VxWorks镜像:存储在板上ROM,运行在板上RAM中   ROM驻留的VxWor ...

  6. HighCharts之2D半圆环图

    HighCharts之2D半圆环图 1.实例源码 HalfDonut.html: <!DOCTYPE html> <html> <head> <meta ch ...

  7. Oracle 存储过程中的 =>

    oracle实参与形参有两种对应方式1.一种是位置方式,和面向对象语言参数传递类似;2.另外一种是=> 作为形参对应,因为位置对应方法有缺限,比如一个函数有3个参数,但第2个是可以不传(有默认值 ...

  8. nest exception is java.sql.SQLException:ORA-01476:除数为0

    1.错误描述 nest exception is java.sql.SQLException:ORA-01476:除数为0 2.错误原因 3.解决办法

  9. 双刃剑MongoDB的学习和避坑

    双刃剑MongoDB的学习和避坑 MongoDB 是一把双刃剑,它对数据结构的要求并不高.数据通过key-value的形式存储,而value的值可以是字符串,也可以是文档.所以我们在使用的过程中非常方 ...

  10. python中的迭代器&&生成器&&装饰器

    迭代器iterator 迭代器是访问集合元素的一种方式.迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束. 迭代器只能往前不会后退,不过这也没什么,因为人们很少在迭代途中往后退.另外, ...