rsync+inotfiy实时备份

rsync简介: rsync是linux系统下的数据镜像备份工具。使用快速增量备份工具Remote Sync可以远程同步,支持本地复制,或者与其他SSH、rsync主机同步

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

实验准备:

192.168.2.5 备份 rsync server
192.168.2.7 源备份 rsync client + inotify

关闭防火墙和selinux

systemctl stop firewalld
setenforce 0

两台都安装rsync

yum -y install rsync

备份端:
1.修改配置文件

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 = /backups #备份路径
comment = mysql data
ignore errors #跳过错误
read only = no #读
write only = no #写
hosts allow = 192.168.2.7 #备份源ip
list = false
auth users = rsync_user  #用户
secrets file = /etc/rsync.password #密码路径

2.创建认证用户密码文件;修改文件权限

echo "rsync_user:123456" > /etc/rsync.password
chmod 600 /etc/rsync.password

3.创建备份目录

mkdir -p /backups

4.启动rsyncd服务,并设置开机自启

systemctl start rsyncd.service       启动
systemctl enable rsyncd.service   开机自启 

netstat -nltp |grep 873 查看端口
rsync+inotfiy实时备份

源备份端:

1.安装epel-release源与服务

yum -y install epel-release
yum -y install inotify-tools rsync

2.创建密码文件,客户端密码文件中,只需要密码即可。同时,密码文件的权限是600

echo "123456" > /etc/rsync.password
chmod 600 /etc/rsync.password

3.编辑inotfiy监控脚本

[root@localhost ~]# vim inotify.sh
#!/bin/bash
ip=192.168.2.5 #备份端ip
src=/data/mysqldata #数据目录
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.创建目录,执行脚本检测

[root@localhost ~]# mkdir -p /data/mysqldata/
[root@localhost ~]# sh inotify.sh

新开一个窗口,进行测试

cd /data/mysqldata
touch aaa
touch bbb

切换到备份端查看

ll /backups/mysqldata/

rsync+inotfiy实时备份

再切换到源备份端,删除aaa文件

rsync+inotfiy实时备份

去备份端查看
rsync+inotfiy实时备份
只剩bbb文件了,实时同步成功!!!

上一篇:rsync同步+inotify实时同步部署


下一篇:Linux性能优化实战CPU篇之软中断(三)