一. 环境说明

为了实现zabbix备份数据库自动同步,到备份服务器搭建

解决方案是在后端建立一个数据发布服务器,该服务器作为rsync客户端,通过inotify机制实时监控网站数据,当数据发生变化后调用rsync命令上传数据到备份服务器(也是rsync服务器)

我使用3台机器做的实验

pc1的ip为10.10.251.49(复制 sync),同步备份客户端mysql数据,也是rsync服务端,需要修改/etc/rsyncd.conf配置文件

pc3的ip为10.10.251.65(主 inotify+sync),作为自动备份zabbix_mysql数据库服务器,是rsync的客户端,不需要配置/etc/rsyncd.conf,但是需要安装inotify

也可以互相同步文件,反过来搭建就可以实现

需要关闭selinux ,防火墙

二. 在服务器上部署rsync服务器

在服务器上部署rsync服务,这些rsync服务需要提供客户端上传功能,以实现客户端主机将数据推送到rsync服务器,这样我们只需要在10.10.251.49主机上修改数据,就可以实时推送数据到zabbix_mysql数据库服务器上

pc1的配置如下

yum -y install rsync   #centos7中默认已安装

mkdir -p /root/bak    #建立数据同步存放目录

chmod 770 /root/bak    #修改权限,必须要有读,写,执行权限,否而会失败。

chown nobody.nobody /root/bak   #修改所属

然后添加修改配置文件,vim /etc/rsyncd.conf    如下

transfer logging = yes

log file = /var/log/rsyncd.log

pid file = /var/run/rsyncd.pid

lock file = /var/run/rsync.lock

uid = nobody

gid = nobody

use chroot = no

ignore errors

read only = no

[zabbix1]   #

comment = zabbix1  名字随意

path = /root/bak  #同步主机上的目录,

auth users = tom

secrets file = /etc/rsyncd.secrets  #根据这个名字创建文档,可以自己修改路径名字

host allow = 10.10.251.65   #从哪个主机同步,就写那个ip

list = false

然后设置密码文件,防火墙

echo "tom:123" > /etc/rsyncd.secrets  # 需要创建用户名为tom 密码为123 的用户

chmod 600 /etc/rsyncd.secrets    #加权限

systemctl restart rsyncd

rsync --daemon    #一定记得要开启rsync

echo "rsync --daemon" >> /etc/rc.local  设置开机运行

三。主 inotify+sync服务器(10.10.251.65)

1. 安装相应软件

yum -y install rsync

systemctl start rsyncd

rsync --daemon  #开启rsync

yum -y install automake libtool   #安装编译安装软件所需工具

解压后进入inotify-tools-3.13目录,执行如下安装

./configure      #默认安装路径是/usr/local,如果想改变路径可在后面加参数 --prefix 路径名

make && make install

2. 设置密码文件

echo "123" > /root/rsync.pass   #123为rsync服务端配置的用户名为tom的密码

chmod 600 /root/rsync.pass

红字部分注意对应。

3. 编写监控脚本

vim notify_rsync.sh

#!/bin/bash

host_slave=10.10.251.49  # 对端想要同步的ip

master_src=/root/bak   #同步路径

inotify_home=/usr/local/   #inotifywait (这个试行程序的路径)

${inotify_home}/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f' -e close_write,modify,delete,create,attrib $master_src \

| while read file

do

rsync -az --delete ${master_src} rsynclsl@${host_slave}::zabbix1 --password-file=/root/rsync.pass

done

然后执行此脚本 sh notify_rsync.sh,注意脚本会一直运行,你去主上创建,在备份机就可以看到效果了,就因为不知道这个,排错多一个小时

之后就可以实现同步如下图

本次参考:https://www.cnblogs.com/regit/p/8073097.html

inotify加rsync备份mysql_centos7 实现inotify-tools + rsync,自动备份mysql数据库相关推荐

  1. 计算机文件自动备份到移动硬盘,电脑文件定时自动备份到移动硬盘,有什么方法?...

    原标题:电脑文件定时自动备份到移动硬盘,有什么方法? 如果你是一名上班族,那么肯定会有备份重要电脑文件的习惯,因为电脑系统崩溃挥着磁盘硬盘损坏将会导致电脑文件的丢失,文件备份可以帮助我们减少这种风险. ...

  2. 文件服务器如何异地备份,实战演示如何进行异地自动备份数据库

    SQL专栏 SQL数据库基础知识汇总 SQL数据库高级知识汇总 有小伙伴提出如何进行异地备份的问题,今天我们就来给大家演示一下. 异地备份 所谓异地备份,就是将服务器端的数据文件,拷贝到本地或者其他地 ...

  3. 设置备份计划后,不能执行自动备份

    1.设置备份计划后,不能执行自动备份: 2.查询知识库中内容,按照知识库提供的方式进行设置和调试,还是无法进行自动备份. 3.软件涉及版本航信10.2基础版.10.2标准版.10.3基础版.10.3标 ...

  4. 西加云杉700E设备AAA认证之Radius服务器与Mysql数据库交互

    简介 目的: AC向FreeRadius服务器发送验证请求时,Radius服务器与mysql数据库认证后通过认证请求,使请求的用户可以上网. 文章结构 FreeRadius配置 Mysql数据库配置 ...

  5. linux oraclerman自动备份,Linux平台下的Oracle自动备份案例(使用RMAN)

    有个童鞋问rman的自动备份脚本程序,我之前有写过exp备份指定方案自动备份案例(Linux平台下的Oracle自动备份案例(使用exp工具)  http://www.linuxidc.com/Lin ...

  6. linux 自动配置 mysql数据库,Linux下配置mysql数据库主从自动备份

    当网站内容越来越多的时候,数据库也变得越来越大了.如果不小心误删了,或者被攻击了,那就什么都没有了,一切归零.到现在博主也认识到了数据库的重要性,于是决定研究研究数据库的自动备份.如果你是土豪那可以直 ...

  7. mysql数据库备份工具expdb,使用expdp完成自动备份数据库案例以及遇到的问题

    在线QQ客服:1922638 专业的SQL Server.MySQL数据库同步软件 1,exp和imp是客户端工具程序,它们可以在客户端或服务器上使用. 2.expdp和impdp是服务器端的工具程序 ...

  8. 怎么自动备份mysql数据库备份_3步教你一键自动备份mysql数据库的方法

    @echo off color 0D MODE con: COLS=71 LINES=25 title mysql数据库自动备份脚本(任务计划)--脚本作者:https://www.***.com s ...

  9. mysql 备份库的shell_shell学习之自动备份mysql数据库

    首先登陆mysql: mysql -u root -p注意:不是系统root的密码,mysql安装好后默认root密码为空 >set password for 'root'@'localhost ...

  10. 自动备份html文件,windows下定期自动备份本地文件(文件夹)

    虽然网上有一些免费的文件自动备份软件,但是没有自己编写一段批处理来完成备份任务来的放心,而且不用占用系统资源. 就给大家讲一下如何利用批处理完成本地文件或者文件夹的备份. 1.批处理脚本 该方法可把某 ...

最新文章

  1. 2015211230108《Java程序设计》第10周学习总结
  2. linux查域名对应的ip 系统调用,DDNS 的工作原理及其在 Linux 上的实现
  3. C++ 成员函数做友元
  4. Faster RCNN中的交替训练
  5. python测试用例管理_Python测试框架Pytest的常用插件测试报告
  6. Codeforces Round #658 (Div. 2)
  7. power bi 中计算_Power BI中的期间比较
  8. c语言中把时间拷到字符串中,C语言中将日期和时间以字符串格式输出的方法
  9. 双十一,没有买卖就没有伤害!
  10. DB2数据库SQL语法大全推荐word版
  11. python 生成excel_python 数据生成excel导出(xlwt,wlsxwrite)代码实例
  12. paip.提升用户体验---业务SQL注入漏洞的分析与解决
  13. Visio绘制ER图-
  14. CGI与ISAPI的区别
  15. Nginx学习使用记录
  16. ant构建异常UNEXPECTED TOP-LEVEL EXCEPTION com.android.dx.cf.iface.ParseException解决
  17. 如何提升 B站 等级?
  18. 抽象思维能力训练随感
  19. TIA博途中如何为PLC分配IP地址?
  20. 创新方法72变(荣振环)

热门文章

  1. react 引用本地js_从零配置webpack 4+react脚手架(二)
  2. 百度地图软件测试,使用 app-inspector 解析 i 调用百度地图定位的页面时 (iOS),会导致测试 app 崩溃...
  3. 入门Mac快捷键详细分类整理,包括Eclipse和Android Studio中一些常用的快捷键
  4. C#泛谈 —— 变体(协变/逆变)
  5. 《信号检测与处理》的学习
  6. C++基础知识-Day8
  7. set-matrix-zeroes当元素为0则设矩阵内行与列均为0
  8. 欧几里德算法与扩展欧几里德算法
  9. Android 数据加密算法 Des,Base64详解
  10. 一条sql语句,要修改一个字段的俩个值,比如把字段sex中的男改为女,女改为男...