搭建rsync+inotify实时同步
一、准备rsync
在backup备份服务器上准备好rsync。即完成nfs客户端到backup服务端的rsync部署------rsync备份搭建
二、inotify
inotify是一种异步文件系统事件监控机制,linux内核从2.6.13开始支持。它可以监控文件系统中添加、删除、修改、移动等各种事件。
nfs客户端安装inotify:
先检查内核版本:uname -r (2.6.13以上版本支持)
检查有没有目录:ls -l /proc/sys/fs/inotify/,有此目录表示支持
检查有没有安装:rpm -qa inotify-tools
若没有,则安装,先安装第三方源:
wget -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo
再安装inotify:
yum install inotify-tools -y
rpm -qa inotify-tools -再次检查
安装完后工具集介绍:
inotifywait:在被监控的文件或目录上等待特定文件系统事件(open,close,delete等)发生,执行后处于阻塞状态,适合在shell脚本中使用。
inotifywatch:收集被监视的文件系统使用度统计数据,指文件系统事件发生的次数统计。
inotifywait参数详解:
-m:保持实时监控
-q:仅仅打印监控事件的信息
--excludei:排除文件或目录时,不区分大小写
-d:后台运行
-r:递归,可对子目录进行监控
-e:指定需要监控的事件(
如access-文件或目录被读取,
modify-文件或目录内容被修改,
attrib-文件或目录属性被改变,
close-文件或目录封闭,无论读/写模式,
open-文件或目录被打开,
moved_to-文件或目录被移到另一个目录,
move-文件或目录被移到另一个目录或者从其他目录移到当前目录,
create-文件或目录被创建在当前目录,
delete-文件或目录被删除,
unmount-文件系统被卸载)
人工测试事件:
开启两个窗口(同一台机器):
1】测试create
inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f' -e create /backup
2】监控delete
inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f' -e create,delete /backup
3】监控修改
inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f' -e close_write /backup
三、当监控到nfs目录文件系统事件变化后,触发rsync推送变化的文件
cd /server/scripts
vi inotify.sh
#!/bin/bash
/usr/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f' -e create,close_write,delete /backup|while read file
docd /backup &&\rsync -az ./ --delete rsync_backup@172.16.1.41::nfsbackup --password-file=/etc/rsync.password
done
给脚本执行权限:chmod +x inotify.sh
加入后台进程(守护进程daemon)运行
vi /etc/init.d/syncd
#!/bin/bash
chkconfig: 2345 38 46
. /etc/init.d/functions
if [ $# -ne 1 ];thenusage: $0 [start|stop]exit 1
fi
case "$1" in
start)/bin/bash /server/scripts/inotify.sh &echo $$ >/var/run/inotify.pidif [ `ps -ef|grep inotify|wc -l` -gt 2];thenaction "inotify service is started" /bin/trueelseaction "inotify service is started" /bin/falsefi;;
stop)kill -9 `cat /var/run/inotify.pid` >/dev/null 2>&1pkill inotifywaitsleep 2if [ `ps -ef|grep inotify|grep -v grep|wc -l` -eq 0];thenaction "inotify service is stopped" /bin/trueelseaction "inotify service is stopped" /bin/falsefi;;
*)
接着执行:chmod +x /etc/init.d/syncd
然后:chkconfig --add syncd
检查:chkconfig --list syncd
启动:/etc/init.d/syncd start
inotify调优:
在/proc/sys/fs/inotify目录下有三个文件,对其有一定的限制。
max_user_watches:设置命令可监视的文件数量(单进程)
max_user_instances:设置每个用户可以运行的命令的进程数
max_queued_events:设置inotify实例事件队列可容纳的事件数量
实战调整:
echo "50000000" >/proc/sys/fs/inotify/max_user_watches
echo "50000000" >/proc/sys/fs/inotify/max_queued_events
可能重启会失效,加入到/etc/rc.d/rc.local
inotify优点:
1、监控文件系统实时变化,通过同步工具实现实时数据同步
缺点:
1、并发如果大于200个文件(10-100k),同步就会有延迟
2、监控到事件后,调用rsync同步是单进程的(加&并发),sersync多进程同步
既然inotify-tools可以,为什么还要用sersync?
sersync功能多
1、支持配置文件
2、真正的守护进程
3、可以对失败文件定时重传
4、第三方的http接口(例如更新CDN缓存)
5、默认多线程rsync同步
高并发数据实时同步方案小结
1、inotify(sersync)+rsync.是文件级别的
2、drdb文件系统级别,基于block块同步,缺点:备节点数据不可用,只有主节点坏了才用
3、第三方软件的同步功能:
mysql同步,oracle,mongodb
4、程序双写,直接写两台服务器
5、通过业务逻辑解决:读写分离,备读不到,读主
6、NFS集群(双写主存储,备存储用inotify(sersync)+rsync,备没有找主解决延迟问题)
搭建rsync+inotify实时同步相关推荐
- Centos7 下 配置 rsync 以及 rsync+inotify 实时同步
Centos 7 下 配置 Rsync 以及 rsync+inotify 实时同步 rsync介绍 rsync是一个开源的快速备份工具,可以在不同主机之间镜像同步整个目录树,支 持增量备份,保持链接和 ...
- Linux 环境下实战 Rsync 备份工具及配置 rsync+inotify 实时同步
1.什么是 Rsync? Rsync 是一个开源的快速备份工具,是Linux和UNIX操作系统默认安装的组件之一,可在不同主机间镜像同步整个目录,并支持增量备份文件传输,保持链接和权限,采用优化的同步 ...
- Rsync+inotify 实时同步
Rsync+inotify 实时同步(触发式) ========================================================================= ...
- inotify介绍及rsync + inotify 实时同步备份
1.前言 rsync (remote sync)是一款非常好的数据同步工具,能够通过对比同步双方的数据变动,实现增量同步,还可以通过LAN/WAN实现远程多台主机间文件的同步,还能结合crond任务计 ...
- centos 6.5 rsync+inotify 实时同步
主机名.ip: server 172.31.82.184 client 172.31.82.185 需求: 1.server端 "/data/server" 做为client端 ...
- rsync+inotify实时同步实操
rsync概述 一款快速增量备份工具 可以实现远程同步 支持本地复制,或者与其他SSH,rsync主机同步 配置操作 rsync 服务端:20.0.0.185 客户端:20.0.0.186 安装rsy ...
- Rsync下行同步+inotify实时同步介绍和部署
Rsync下行同步+inotify实时同步介绍和部署 一.Rsync 1.Rsync同步源 2.Rsync服务器 3.同步方式 二.配置rsync源 三.rsync命令 四.配置源的两种表示方法 1. ...
- rsync下行同步与inotify实时同步
rsync下行同步与inotify实时同步 一.rsync工具 二.定时同步与实时同步 三.配置rsync源 四.rsync命令 五.配置源的两种表示方法 六.inotify 七.配置rsync下行同 ...
- rsync同步+inotify实时同步部署
目录 一.rsync简介 二.rsync同步源 三.配置rsync源 1.基本思路 2.rsync命令 3.配置源的两种表达方式 4.免交互格式 四.配置rsync远程同步 1.关防火墙.安装相应的软 ...
最新文章
- LightOJ - 1038 Race to 1 Again 基础期望概率 dp
- SQL 中循环、for循环、游标
- Cookie的生命周期
- 移动全平台性能测试工具PerfDog--安装及运行
- linux mysql 端口配置文件_Linux配置测试环境,部署项目(指定端口,数据库连接)...
- 七、spring生命周期之初始化和销毁方法
- echarts 生成 迁徙图_百度地图+echarts(迁徙图)
- 三维扫描仪在工业生产中的作用
- 给自己的django项目配置域名
- 一根网线连接两台电脑
- 使用tkinter canvas绘制中国象棋棋盘
- KNEEL: Knee Anatomical Landmark Localization Using Hourglass Networks
- 利用华为云ECS服务器搭建安防视频监控平台
- 風地觀 (易經大意 韓長庚)
- 2020中国上市公司品牌价值榜20强发布
- python飞机大战没有运行界面_python3实现飞机大战
- 华工计算机组成原理第一次作业,华工网络教育学院2018计算机组成原理作业
- android之cpu使用率
- 北航博士生联培申请经验
- 基于Java的宿舍管理系统
热门文章
- Python 第三方模块 统计1 statsmodels模块2 时间序列
- 一种基于浏览器的自动小票机打印实现方案
- 【转载】云计算、大数据和人工智能
- Java中的DO,DTO,VO,POJO
- dlist(随机选择手机品牌列表brandlist)
- Camera 3A 入门
- 达内java作业_【达内JAVA教程】达内Java基础题
- 电子邮件服务器组成部分,电子邮件系统由哪几部分组成?各部分的作用是什么?简述电子邮件的发送过程。...
- 黑马程序员 一步一步往上爬 学习毕老师java视频第17,18,19天
- 童年游戏 街机 雷电2 一命通关视频