Inotify+rsync实时同步工具实战

Inotify+rsync实时同步工具实战

分别有机器:server-178/24,client-b-179/24,client-c-180/24

中心分发服务器Master:client-c-180/24

备份服务器    :client-b-179/24和server-178/24

基于备份服务器已经提供rsync --daemon的基础上,在中心分发服务器(rsync客户端)配置inotify,监控的目录设置为/www/

1.查看当前系统是否支持inotify

ls -l /proc/sys/fs/inotify/

[[email protected] tools]# ls -l /proc/sys/fs/inotify/

total 0

-rw-r--r-- 1 root root 0 Oct 31 03:34 max_queued_events

-rw-r--r-- 1 root root 0 Oct 31 03:34 max_user_instances

-rw-r--r-- 1 root root 0 Oct 31 03:34 max_user_watches

#显示这三个文件则证明支持

2.下载inotify源码包

利用secureCRT的rz功能把inotify-tools-3.13.tar.gz,上传中心分发服务器Master:client-c-180/24的/tools目录下。

[[email protected] tools]# pwd

/tools

[[email protected] tools]# ls

inotify-tools-3.13.tar.gz

sersync2.5_32bit_binary_stable_final.tar.gz

sersync2.5.4_64bit_binary_stable_final.tar.gz

3.编译安装inotify

[[email protected] tools]# tar zxf inotify-tools-3.13.tar.gz

[[email protected] tools]# cd inotify-tools-3.13

[[email protected] inotify-tools-3.13]# ./configure --prefix=/usr/local/inotify-tools-3.13

[[email protected] inotify-tools-3.13]# make &&make install

4.安装完成后在/server/scripts目录下编写一个脚本默认不存在,起名为:inotify_rsync.sh,需要自己编写,如下格式:

简单的脚本:

#!/bin/sh

#定义变量

SRC=/www/

[email protected]::www/  #对IP地址主机178

[email protected]::www/  #对IP地址主机179

PASS=/etc/rsync.password

INWT=/usr/local/inotify-tools-3.13/bin/inotifywait

RSYNC=/usr/bin/rsync

$INWT -mrq -e create,move,delete,modify $SRC | while read D E F;do

rsync -aruz --delete $SRC ${DST178} --password-file=${PASS} >/dev/null 2>&1

rsync -aruz --delete $SRC ${DST179} --password-file=${PASS} >/dev/null 2>&1

done

5.执行脚本命令:

sh inotify_rsync.sh &   #这个是放到后台去执行“&

6.进入监控的目录,进行测试是否能成功同步

cd /www/

时间: 2024-10-12 16:01:28

Inotify+rsync实时同步工具实战的相关文章

inotify +rsync 实时同步

1.1 inotify简介 inotify是一种强大的,细粒度的,异步的文件系统时间监控机制,Linux内核从2.6.13加入了inotify支持,通过inotify可以监控文件系统汇中添加,删除,修改,移动等各种事件,利用这个内核接口,第三方软件就可以监控文件系统下文件的各种变化情况,而inotify-tools正式实施这样的监控的软件,国人周洋在金山公司开发了类似的实时同步软件sersync. 1.1.1 安装inotify 在安装inotify-tools前请先确认你的Linux内核是否达

配置inotify+rsync实时同步

对rsync服务及命令不熟悉的,可以参考博文通过rsync实现远程同步这里就不多说了! Linux内核从2.6.13版本开始就已经提供了inotify通知接口,用来监控文件系统的各种变化情况,如文件存取.删除.移动.修改等.利用这一机制,可以非常方便的实现文件异动告警.增量备份,并针对目录或文件的变化及时作出响应. 将inotify机制与rsync工具相结合,可以实现出发时备份(实时同步)--只要原始位置的文档发生变化,则立即启动增量备份,否则处于静默等待状态,如图所示:这样,就避免了按固定周期

centos 7配置inotify+rsync实时同步

Linux内核提供了inotify通知接口,用来监控文件系统的各种变化情况,如文件存取.删除.移动.修改等.利用这个机制,可以非常方便地实现文件异动告警.增量备份,并针对目录或文件的变化及时作出响应. 将inotify机制和rsync工具相结合,可以实现触发式备份(实时同步)--只要原始位置的文档发生变化,则立即启动增量备份操作,否则处于静默状态,这样,避免了周期性备份时存在的延迟性.周期过密等问题. 在Linux内核中,默认的inotify机制提供了三个调控参数: [[email protec

配置 inotify+rsync 实时同步

rsync 虽然可以实现快速备份,但是什么东西都不可能是十全十美的,作为计划任务备份,都是固定时间进行的,而且延迟明显.实时性差,当同步源长期不变化时,密集的定期任务是不必要的.实时备份就不同了,一旦同步源出现变化,立即启动备份,只要同步源无变化,则不执行备份,但是他只能实现上传功能.Linux内核提供了inotify通知接口,用来监控文件系统的各种变化情况,如文件存取.删除.移动.修改等.利用这个机制,可以非常方便地实现文件异动告警.增量备份,并针对目录或文件的变化及时作出响应. 将inoti

真正的inotify+rsync实时同步 彻底告别同步慢

我们公司在用inotify+rsync做实时同步,来解决分布式集群文件一致性的问题.但当web文件越来越多(百万级数量html,jpg等小 文件),同步就越来越慢,根本做不到实时,按照网上的调优方法都尝试过,问题根本没有解决.经过我一翻细致研究,终于把慢的核心问题研究明白,先总结一句 inotifywait响应不会有延迟,rsync也很快.大家同样有慢的烦恼,那是因为网上的inotify+rsync的教程都是坑.下面我们来分 析. inotifywait 单独分析 /usr/local/bin/

inotify+rsync实时同步 彻底告别同步慢

#!/bin/bash src=/data/            # 需要同步的源路径 des=data              # 目标服务器上 rsync --daemon 发布的名称,rsync --daemon这里就不做介绍了,网上搜一下,比较简单. rsync_passwd_file=/etc/rsyncd.passwd            # rsync验证的密码文件 ip1=192.168.0.18      # 目标服务器1 ip2=192.168.0.19      #

inotify+rsync实时同步【优化版本-转发】

#!/bin/bash src=/data/ # 需要同步的源路径 des=data # 目标服务器上 rsync --daemon 发布的名称,rsync --daemon这里就不做介绍了,网上搜一下,比较简单. rsync_passwd_file=/etc/rsyncd.passwd # rsync验证的密码文件 ip1=192.168.0.18 # 目标服务器1 ip2=192.168.0.19 # 目标服务器2 user=root # rsync --daemon定义的验证用户名 cd

inotify+rsync实时同步

server部署:#!/bin/baash rpm -qa inotify-tools && yum -y install inotify-tools inotifywait -mrq /data --format '%w%f' -e create,delete,close_write,moved_to|\while read linedo rsync -az --delete /data/ [email protected]::backup --password-file=/etc/rs

Inotify+Rsync实时同步文件

一.网络拓补图: 原文地址:http://blog.51cto.com/hbgslz/2064576