Centos7数据实时同步

简介: Rsync+inotify 功能要求 通过rsync+inotify将数据库指定目录实时同步到备份服务器。 环境说明 M:192.168.10.11 数据库服务器 S:192.
  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-slaveip地址

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

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

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

    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

     

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

-------------------------------------------------------------

作者: 罗穆瑞

转载请保留此段声明,且在文章页面明显位置给出原文链接,谢谢!

------------------------------------------------------------------------------

如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦,博主在此感谢!

------------------------------------------------------------------------------

目录
相关文章
|
7月前
|
SQL 关系型数据库 MySQL
Centos7下利用crontab+bypy实现自动备份数据到百度网盘
Centos7下利用crontab+bypy实现自动备份数据到百度网盘
116 0
|
10月前
|
测试技术 Linux 数据库
性能测试 CentOS下结合InfluxDB及Grafana图表实时展示JMeter相关性能数据2
性能测试 CentOS下结合InfluxDB及Grafana图表实时展示JMeter相关性能数据2
69 0
|
10月前
|
网络协议 安全 关系型数据库
性能测试 CentOS下结合InfluxDB及Grafana图表实时展示JMeter相关性能数据
性能测试 CentOS下结合InfluxDB及Grafana图表实时展示JMeter相关性能数据
105 0
|
Linux 测试技术 Docker
Linux系统:第十三章:centos误删文件如何恢复文件数据
Linux系统:第十三章:centos误删文件如何恢复文件数据
338 0
Linux系统:第十三章:centos误删文件如何恢复文件数据
|
SQL 分布式计算 关系型数据库
四十、centos安装sqoop(使用Sqoop完成MySQL和HDFS之间的数据互导)
四十、centos安装sqoop(使用Sqoop完成MySQL和HDFS之间的数据互导)
四十、centos安装sqoop(使用Sqoop完成MySQL和HDFS之间的数据互导)
|
Linux
Linux系统CentOS8 检测USB、创建挂载点、挂载、存取USB数据、取消挂载
usb 设备挂载与取消挂载; 永久挂载点实现
522 0

相关产品

  • 云迁移中心