inotify实时同步工具理论和实战

本文介绍如何使用inotify服务监测文件系统变化,并通过rsync实现数据的实时同步。inotify能够高效捕捉文件操作事件,rsync则负责将变更内容同步至目标服务器。文中还提供了一个示例脚本,演示如何配置这些工具来实现自动化同步。

inotify服务:

当用户在A服务器上操作了数据,inotify会抓取出来,然后通知rsync,然后同步到rsync服务器。所以inotify服务器却是rsync的客户端服务器。

inotify性能比sersync强,inotify可能支持几百个图片,sersync可能一百所以就差不多了。

确认内核是否支持inotify 可通过ll /proc/sys/fs/inotify查看有三个文件即可。

rz上传inotify软件包

tar xf inotify-tools-3.123.tar.gz

cd inotify-tools-3.13

./configure --prefix=/usr/local/inotify-tools-3.13

make&&make install

cd ../

ln -s /usr/local/inotify-tools-3.13 /usr/local/inotify


/usr/local/inotify下有如下文件:

bin  执行文件  类似windows的exe文件

include 程序所需要的头文件

lib 动态链接的库文件

share 帮助文档


/usr/local/inotify-tools-3.13/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f' -e create /backup 监听创建文件create

创建脚本:

#!/bin/sh

cmd="/usr/local/inotify/bin/inotifywait"

$cmd -mrq --format '%w%f' -e create,close_write,delete /backup|\

while read line

do

  [ ! -e “$line” ] && continue

  rsync -az --delete $line rsync_backup@192.168.44.40::oldboy --password-file=/etc/rsync.password

done


生产环境中需调整一下参数:

max_user_watches  max_queued_events  max_user_instances都调大些。

并发不是很大,10-100k文件 最多200个。

本文转自  流颗星  51CTO博客,原文链接:http://blog.51cto.com/liukexing/1965235

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值