Rsync+Inotify 实时增量同步

Linux 内核从 2.6.13 版本开始提供了 inotify 通知接口,用来监控文件系统的各种变化情况,如文件存取、删除、移动等。利用这一机制,可以非常方便地实现文件异动告警、增量备份,并针对目录或文件的变化及时作出响应。

可以监控某个用户,什么时间,做了什么动作!

使用 rsync 工具与 inotify 机制相结合,可以实现触发式备份(实时同步),只要原始位置的文档发生变化,则立即启动增量备份操作,否则处于静态等侍状态,这样一来,就避免了按固定周期备份进存在的延迟性、周期过密等问题。

1、查看内核支持inotify和调整
uname -r              //inotify从kernel2.6.13开始正式并入内核,开始支持

3.10.0-1160.el7.x86_64
2、查看调控参数
ls /proc/sys/fs/inotify/

max_queued_events    #表示监控时间队列      默认16384 可以使用cat命令查看
max_user_instances     #表示最多监控实例数    默认128
max_user_watches      #表示每个实例最多监控文件数  默认8192

cd /proc/sys/fs/inotify/

cat max_queued_events ;cat max_user_instances ;cat max_user_watches
16384
128
28014

在Linux内核中,默认的Inotify机制提供了三种调控参数,当要监控的目录,文件数比较多的时候或者变化比较频

繁的时候,要加大三个数值

可以直接修改/etc/sysctl.conf配置文件,将管理队列设置为32786,实例数:1024,文件数:9000000(大于监控目标总数即可)

vim /etc/sysctl.conf
 ……     #末尾添加下面三行
 
fs.inotify.max_queued_events =32768

fs.inotify.max_user_instances =1024

fs.inotify.max_user_watches =90000000


使其生效
sysctl -p

rsync安装

yum install -y rsync

inotify-tools安装

yum直接安装
yum install -y inotify-tools

编译安装
yum -y install autoconf automake libtool
https://codeload.github.com/inotify-tools/inotify-tools/tar.gz/refs/tags/v3.14
./autogen.sh  && \
./configure --prefix=/usr/local/inotify-tools &&  \
make &&  \
make install

对环境变量PATH进行追加,写入到配置文件中且让其永久生效。
vim /etc/profile
...
PATH=$PATH:/usr/local/inotify-tools/bin/
source /etc/profile

#使用 inotifywait 输出的监控结果中,每行记录中依次包括目录、事件、文件。据此可以识别变动情况。

使用触发试同步脚本

首先要做好免密码连接

编写脚本

[root@node-1 data]# cat inotify.sh 
#!/bin/bash

SRC=/data/mysql/logs/binlog/

DST=root@172.31.1.4:/data/Master-A-binlog-bak/

/usr/local/inotify-tools/bin/inotifywait -mrq -e modify,delete,create,attrib ${SRC}|while read D E F

    do

        /usr/bin/rsync -avz --delete --inplace --append-verify $SRC $DST

   done

#思路:只要检测到变动时间,执行rsync上行同步操作,拉数据

#while read D E F是哪个变量,前面输出的内容是三段,每一段对应的就是后面的D E F

chmod +x inotify.sh ; echo "sh /root/inotify.sh &" >> /etc/rc.local

把这个脚本放在后台运行:
nohup ./inotify.sh &

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值