inotify+rsync实时备份,inotify+rsync同步备份mysql数据模拟,inotify功能和实现原理,rsync文件实时同步-~@Twang

环境准备

centos7两台,关闭防火墙和selinux
A 备份端——192.168.112.153 【服务端】
B 备份源——192.168.112.172【客户端】

简介

  • Inotify 是一种强大的、细粒度的、异步的文件系统事件监控机制,linux内核从2.6.13起,加入了Inotify支持,通过Inotify可以监控文件系统中添加、删除,修改、移动等各种细微事件,利用这个内核接口,第三方软件就可以监控文件系统下文件的各种变化情况,而inotify-tools就是这样的一个第三方软件
  • rsync具有安全性高、备份迅速、支持增量备份等优点,通过rsync可以解决对实时性要求不高的数据备份需求,但是rsync不能实时的去监测、同步数据

原理

  • Inotify只需要要按照部署在同步的客户端,当监控的文件有变化触动 rsync脚本来同步

A上操作

1、安装EPEL

yum -y install epel-release

2、安装inotify和rsync服务

yum -y install inotify-tools rsync

3、修改rsync的配置文件

vim /etc/rsyncd.conf 
uid=root
gid=root
use chroot = no
max connections = 10
strict modes = yes
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsyncd.lock
log file = /var/log/rsyncd.log
[mysqldata]
path = /data/mysqldata
comment = mysql data
ignore errors
read only = no
write only = no
hosts allow = 192.168.112.172
list = false
auth users = rsync_user
secrets file = /etc/rsync.password
  • 注意点:ip写的是B的ip【也就是客户端的ip】,
    还有就是path的路径需要创建!!!

4、创建目录

mkdir -p /data/mysqldata

5、建立rsync用户名和密码文件,加权限

 echo "rsync_user:rsync_user_pwd" > /etc/rsync.password
 chmod -R 600 /etc/rsync.password

6、启动服务,验证端口

rsync --daemon
   netstat -nlpt|grep 873

在这里插入图片描述

B上操作

7、安装EPEL

yum -y install epel-release

8、安装inotify和rsync服务

yum -y install inotify-tools rsync

9、设置客户端密码文件,修改权限

echo "rsync_user_pwd" > /etc/rsync.password
chmod -R 600 /etc/rsync.password

10、编写脚本

vim bf.sh
#!/bin/bash
ip=192.168.112.153
src=/data/mysqldata_src/
dst=mysqldata
user=rsync_user
/usr/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f' -e modify,delete,create,attrib ${
    
    src} \
    | while read file
do
rsync -vzrtopg --delete --progress $src $user@$ip::$dst --password-file=/etc/rsync.password > /dev/null && echo "$src was rsyncd"
done
  • 注意点:第6行的路径,yum安装的是/usr/bin/inotifywait
    源码安装的是/usr/local/bin/inotifywait
    还有就是src的路径需要创建!!!
  • 路径验证
    在这里插入图片描述

11、创建目录

mkdir -p /data/mysqldata_src

12、执行脚本

sh bf.sh

13、进入相应的目录,创建文件

cd /data/mysqldata_src/
 touch aa.txt

14、切回到A上查验

cd /data/mysqldata/
ls

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qing1912/article/details/109309850