Rsync+inotify 组合使用同步方案
Rsync+inotify 组合使用同步方案
1. Rsync+inotify组合起源
Rsync 远程同步工具通过rsync可以实现对远程服务器数据的增量备份同步,但rsync自身也有瓶颈,同步数据时,rsync采用可信算法对远程服务器的目标档进行对比,只进行差异同步。我们可以想象一下,如果服务器的档数量达到了百万甚至千万量级,那么档对比将是非常耗时间的一部分,这是非常低效率的方式,inotify的出现,可以缓解rsync不足之处,取长补短。
2. Inotify简介
Inotofy是一种强大的、细粒度的、异步的文件系统时间监控机制,linux内核2.6.13起,加入了inotify支持。通过inotify可以加农文件系统添加、删除、修改、移动等各种事件,利用这个内核接口,第三方软件就可以监控文件系统下文件的各种变化情况,而inotify-tools正是实时监控的软件。
特别说明:下面的inotify配置是建立在rsync服务器基础上的配置过程。
架构拓扑图--(单向实时同步)
在rsync推送文件先配置好
3.配置
a)[root@server2 home]# uname -r
2.6.18-164.el5
b)下载inotify-tools(https://github.com/rvoicilas/inotify-tools/downloads)
Wgat http://cloud.github.com/downloads/rvoicilas/inotify-tools/inotify-tools-3.14.tar.gz
c)[root@server2 home]# ll/proc/sys/fs/inotify/
-rw-r--r-- 1 root root 0 Jul 12 14:00max_queued_events
-rw-r--r-- 1 root root 0 Jul 12 14:00max_user_instances
-rw-r--r-- 1 root root 0 Jul 12 14:00max_user_watches
如果有这三个文件说明支持inotify
d)安装inotify
e)配置inotify脚本
vi /home/realtime_rsync.sh
#!/bin/sh host01=server1 src=/var/log dst=backup user=rsync_backup rsync_passfile=/etc/rsync.password inotify_home=/usr/local/inotify for i in $src $rsync_passfile "$inotify_home"/bin/inotifywait;doif [ -e $i ];thenecho $(date +%F_%H%M%S) $i is exist >>/home/real_inotify.logelseecho ckeck file or folder $i.fi done "$inotify_home"/bin/inotifywait -mrq --timefmt '%d%m%y-%H:%M' --format '%T %w%f' -e modify,create,delete,attrib $src |while read file do /usr/bin/rsync -aruz --delete $src/ $user@$host01::$dst --password-file=$rsync_passfile >/dev/null 2>&1
说明:host01是备份服务器的地址;
Src是需要备份的文件地址
Dst是目标服务器的模块名
Userrsync服务器虚拟用户名
Rsync_passfilersync服务密码文件
使用for循环来检查需要的目录和文件是否存在,然后通过inotify监控src文件是否有改动。如果有改动则触发同步命令rsync
e)sh –x /home/realtime_rsync.sh 调试模式
f)在/home/backup创建测试文件看是否同步。
#!/bin/sh host01=server1 src=/home/backup dst=backup user=rsync_backup rsync_passfile=/etc/rsync.password inotify_home=/usr/local/inotify for i in `seq 200`;do # dd if=/dev/zero of=$src/$i bs=1 count=10cp $src/exe.tar.gz $src/$i.tar.gz # sleep 0.5 done
测试日志
[root@server2 exe]# sh -x ./realtime_rsync.sh
+ host01=server1
+ src=/home/backup
+ dst=backup
+ user=rsync_backup
+ rsync_passfile=/etc/rsync.password
+ inotify_home=/usr/local/inotify
+ for i in '$src' '$rsync_passfile' '"$inotify_home"/bin/inotifywait'
+ '[' -e /home/backup ']'
++ date +%F_%H%M%S
+ echo 2013-07-13_194330 /home/backup is exist
+ for i in '$src' '$rsync_passfile' '"$inotify_home"/bin/inotifywait'
+ '[' -e /etc/rsync.password ']'
++ date +%F_%H%M%S
+ echo 2013-07-13_194330 /etc/rsync.password is exist
+ for i in '$src' '$rsync_passfile' '"$inotify_home"/bin/inotifywait'
+ '[' -e /usr/local/inotify/bin/inotifywait ']'
++ date +%F_%H%M%S
+ echo 2013-07-13_194330 /usr/local/inotify/bin/inotifywait is exist
+ read file
+ /usr/local/inotify/bin/inotifywait -mrq --timefmt %d%m%y-%H:%M --format '%T %w%f' -e modify,create,delete,attrib /home/backup
+ /usr/bin/rsync -aruz --delete /home/backup/ rsync_backup@server1::backup --password-file=/etc/rsync.password
+ read file
+ /usr/bin/rsync -aruz --delete /home/backup/ rsync_backup@server1::backup --password-file=/etc/rsync.password
+ read file
+ /usr/bin/rsync -aruz --delete /home/backup/ rsync_backup@server1::backup --password-file=/etc/rsync.password
测试通过
后台执行脚本
nohup /home/realtime_rsync.sh &
转载于:https://blog.51cto.com/51cliang/1248335
Rsync+inotify 组合使用同步方案相关推荐
- rsync+inotify文件实时同步实战
说明:本文部分内容收集于互联网 不完全原创 但都经过本人亲身试验 方案: 1.双向:两台服务器都要开rsync同步和inotify监听 ---> 多对多 2.单向:一台服务器开inotify 其 ...
- rsync+inotify实现实时同步案例--转
转自:http://chocolee.blog.51cto.com/8158455/1400596 随着应用系统规模的不断扩大,对数据的安全性和可靠性也提出的更好的要求,rsync在高端业务系统中也逐 ...
- rsync+inotify实现实时同步案例
随着应用系统规模的不断扩大,对数据的安全性和可靠性也提出的更好的要求,rsync在高端业务系统中也逐渐暴露出了很多不足,首先,rsync同步数据时,需要扫描所有文件后进行比对,进行差量传输.如果文件数 ...
- rsync+inotify实现实时同步案例详解
rsync+inotify实现实时同步案例详解 转自:http://chocolee.blog.51cto.com/8158455/1400596 随着应用系统规模的不断扩大,对数据的安全性和可靠性也 ...
- Rsync+inotify实现实时同步
如果有一天去接受面试:面试官问你一个1t的文件需要进行传输,问题用何种方法.假如你答了scp或者ftp.那么你挂的几率是很大的 一.inotify介绍 inotify-tools有两个命令 //ino ...
- Linux学习--rsync+inotify实现自动同步
Linux学习–rsync+inotify实现自动同步 rsync remote synchronization(远程同步) rsync 的最大特点是会检查发送方和接收方已有的文件,仅传输有变动的部分 ...
- rsync + inotify 实现实时同步
rsync + inotify 实现实时同步 rsync 简介 Rsync是一款开源的.快速的.多功能的.可实现全量及增量的本地或远程数据同步备份的优秀工具.并且可以不进行改变原有数据的属性信息,实现 ...
- rsync+inotify高效实时同步
多服务器高效数据实时同步方案 实验环境 docker模拟两台centos7服务器 名称 ip 类型 centos_a 172.17.0.2 数据服务器 centos_b 172.17.0.3 备份服务 ...
- rsync + inotify 数据实时同步
一.rsync介绍 rsync英文全称为Remote synchronization,从软件的名称就可以看出来,Rsync具有可是本地和远程两台主机之间的数据快速复制同步镜像.远程备份的功能,这个功能 ...
- Linux平台上文件同步——rsync+inotify之定时同步
1 前言 1.1 概述 本文介绍使用rsync和 inotify-tools,实现linux 上的本地定时同步和远程定时同步的方法. 1.2 实验环境 服务器两台 操作系统: CentOS-7.4 软 ...
最新文章
- PCL :K-d tree 2 结构理解
- react把表格渲染好ui_在React中实现条件渲染的7种方法
- 阿里GTS解密--GTS的原理、架构与特点
- OSPF邻接形成过程
- __declspec(naked)详解
- HTTPS虐我千百遍,我却待她如初恋!
- 利用zookeeper实现分布式服务故障自动剔除/服务自动注册的思路
- 梯度下降法和随机梯度下降法
- 【剑指offer】面试题55 - II:平衡二叉树(Java)
- 黑苹果找不到触控板_苹果高管告诉你为何要添加触控板功能
- Android 系统(258)---获取SIM卡手机号
- VC遍历窗口上的控件
- java.lang.Class.isPrimitive()用法解析
- “云时代架构”经典文章阅读感想十三
- Python基于wordnet实现词语相似度计算分析
- 安全公司-* * * *-面试题:_ 安卓逆向分析分享
- 【Dam Dadi Doo】MMD镜头+动作打包下载.zip
- 微信小游戏马甲包过审策略
- Android 气泡碰撞
- 离散题目9(判断是否为单射函数)
热门文章
- spring cloud config git库文件搜索顺序
- Spark学习笔记6:Spark调优与调试
- IOS TableView详解
- hdu4318 最短路变形
- GeoServer不同服务器安装配置、数据发布及客户端访问
- SQL语句中的rank () over , row_number() over ,rank_dense ()
- 二叉树转为单链表——Flatten Binary Tree to Linked List
- select min from 连接
- jquery操作元素
- Linux学习笔记1-在CentOS 7中安装配置JDK8