阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

rsync+inotify实现数据实时同步实战

161次阅读
没有评论

共计 3060 个字符,预计需要花费 8 分钟才能阅读完成。

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

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

软件下载地址:http://sourceforge.net/projects/inotify-tools/            #notify-tools-3.13

或者到 Linux 公社资源站下载:

—————————————— 分割线 ——————————————

免费下载地址在 http://linux.linuxidc.com/

用户名与密码都是 www.linuxidc.com

具体下载目录在 /2016 年资料 /11 月 /29 日 /rsync+inotify 实现数据实时同步实战 /

下载方法见 http://www.linuxidc.com/Linux/2013-07/87684.htm

—————————————— 分割线 ——————————————

试验要求:将 test2 主机 /var/www/html 目录实时同步到 test1 主机 /var/www/html 目录中;

试验拓补图

rsync+inotify 实现数据实时同步实战

[root@test2 ~]#uname -r                                                                                  #查看 linux 内核

2.6.32-431.el6.x86_64

[root@test2 ~]#yum -y install xinetd rsync;                                                        #安装 rsync 服务

    [root@test2 ~]#yum -y install gcc-c++,openssh-clients                                                         

将 inotify-tools 上传并进行解压安装

[root@test2 ~]# tar xvf inotify-tools-3.13.tar.gz -C /usr/local/src/                      #解压

[root@test2 ~]# cd /usr/local/src/inotify-tools-3.13/                                            #切换目录

[root@test2 inotify-tools-3.13]#./configure –prefix=/usr/local/inotify-tools ;        #编译安装

[root@test2 inotify-tools-3.13]#make ; make install                                                                                               

测试

使用 inotifywait 命令监控网站目录 /var/www/html 发生的变化,然后在另一个终端向 /var/www/html 目录下添加文件、移动文件,查看屏幕输出结果。

inotifywait 常用参数:

-e  用来指定要监控哪些事件。这些事件包括:create 创建,move 移动,delete 删除,modify 修改文件内容,attrib 属性更改。

-m 表示持续监控

-r  表示递归整个目录

-q 表示简化输出信息

[root@test2 ~]# inotifywait -mrq -e create,move,delete,modify /var/www/html/

然后再另开一终端,进入 /var/www/html 目录进行新增删除测试;

[root@test2 html]#mkdir test

[root@test2 html]#touch test.txt

[root@test2 html]#rm -rf test.txt

rsync+inotify 实现数据实时同步实战     

创建触发式脚本自动同步数据

ssh 免密码登录

[root@test2~]#ssh-keygen                                                                                              #生成密钥

[root@test2~]#ssh-copy-id root@192.168.1.190                                                              #发布公钥

编写脚本

[root@test2~]#vim inotify.sh

#!/bin/bash

SRC=/var/www/html

DST=root@192.168.1.190:/var/www/html

inotifywait -mrq -e modify,delete,create,attrib ${SRC}|while read D E F

                      do

                          /usr/bin/rsync -avz –delete $SRC $DST

                      done

[root@test2~]#chmod +x inotify.sh                                                    #添加执行权限

测试自动同步的效果

[root@test2~]#./inotify.sh                                                                  #运行脚本

另开一终端进行新增删除修改动作

[root@test2~]#cd /var/www/html/

[root@test2~]#touch bb.txt

然后登录到 192.168.1.190 服务器进行查看备份目录

rsync+inotify 实现数据实时同步实战

RSync 实现文件备份同步详解   http://www.linuxidc.com/Linux/2014-09/106967.htm

利用 inotifywait 监控主机文件和目录 http://www.linuxidc.com/Linux/2013-03/81075.htm

利用 inotify+rsync 实现 Linux 文件批量更新 http://www.linuxidc.com/Linux/2012-01/52132.htm

inotify-tools+rsync 实时同步文件安装和配置 http://www.linuxidc.com/Linux/2012-06/63624.htm

rsync 同步完整配置 http://www.linuxidc.com/Linux/2013-06/85781.htm

CentOS 6.5 下 Rsync 远程同步 http://www.linuxidc.com/Linux/2014-05/101084.htm

Linux 文件夹对比并提取的差分文件技巧 -rsync 的妙用 http://www.linuxidc.com/Linux/2016-02/128307.htm

Rsync 的详细介绍 :请点这里
Rsync 的下载地址 :请点这里

本文永久更新链接地址 :http://www.linuxidc.com/Linux/2016-11/137629.htm

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计3060字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中