Centos7 rsync+inotfiy 实时备份

rsync简介:

rsync具有可使本地和远程两台主机之间的数据快速复制同步镜像、远程备份的功能

inotfiy简介:

Inotify 是一种强大的、异步的文件系统事件监控机制,通过Inotify可以监控文件系统中添加、删除,修改、移动等各种细微事件,利用这个内核接口,第三方软件就可以监控文件系统下文件的各种变化情况

一.准备环境

两台centos7 虚拟机

192.168.27.136 A (备份源)
192.168.27.137 B (备份端)

关掉防火墙 setenforce
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# setenforce 0

二.B台(备份端)操作

1.安装配置rsync
[root@localhost ~]# yum -y install rsync
[root@localhost ~]# 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.27.136 #备份源ip
list = false
auth users = rsync_user  #用户
secrets file = /etc/rsync.password #密码路径
2.建立rsync用户名和密码文为 /etc/rsync.password授权
[root@localhost ~]# echo "rsync_user:123" > /etc/rsync.password
[root@localhost ~]# chmod 600 /etc/rsync.password 
3.创建备份目录
[root@localhost ~]# mkdir -p /data/mysqldata
4.启动rsync 并查看端口
[root@localhost ~]# rsync --daemon
[root@localhost ~]# netstat -nlput |grep 873
tcp        0      0 0.0.0.0:873             0.0.0.0:*               LISTEN      13338/rsync       

三.A台(备份源)操作

1.安装rsync inotfiy
先安装epel-release源
[root@localhost ~]# yum -y install epel-release
[root@localhost ~]# yum -y install inotify-tools rsync
2.客户端只需要设置rsync同步密码即可,不用重设用户名
[root@localhost ~]# echo "123" > /etc/rsync.password
[root@localhost ~]# chmod 600 /etc/rsync.password 
3.编辑inotfiy监控脚本
[root@localhost ~]# vim inotify.sh
#!/bin/bash
ip=192.168.27.137 #备份源ip
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
4.创建目录,执行脚本检测
执行前检查下目录是否存在,不存在记得创建
mkdir -p /data/mysqldata_src
[root@localhost ~]# sh inotify.sh 

5.在开个会话,创建文件测试,查看状态
[root@localhost ~]# cd /data/mysqldata_src/
[root@localhost mysqldata_src]# touch 666
[root@localhost mysqldata_src]# 

[root@localhost ~]# sh inotify.sh 
/data/mysqldata_src/ was rsyncd
/data/mysqldata_src/ was rsyncd

在B(备份端查看)

[root@localhost ~]# cd /data/mysqldata/
[root@localhost mysqldata]# ls
a

完成

  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值