环境搭建

0.环境安装   gcc  yum install gcc -y

1.安装inotify(源码软件包)

文件下载:https://files.cnblogs.com/files/ftl1012/inotify-tools-3.14.tar.gz

1.  cd /opt/tools/inotify-tools-3.14/

2.  ./configure  --prefix=/opt/tools/inotify-tools-3.14/

3. yum install -y gcc

4.  make && make install

5.  ln -s /opt/tools/inotify-tools-3.14/  /opt/tools/inotify-tools

6.  ls -l /opt/tools/inotify-tools

2.inotify重要工具

1.查看目录

cd /opt/tools/inotify-tools/bin     -->lib是动态链接的库文件

2.inotifywait:在被监控的文件或者目录上等待特定文件系统事件(delete,open,close等)的发生,然后处于阻塞状态,适合shell脚本使用

inotifywatch:收集被监视文件系统使用度统计数据,指文件系统事件发生的次数统计

3.inotifywait命令常用参数详解

   -r|--recursive  Watch directories recursively.

    -m|--monitor  Keep listening for events forever.  Without this option, inotifywait will exit after one event is received.

    -t|--timeout <seconds>

    -q|--quiet       Print less (only print events).

    -qq             Print nothing (not even events)

    --fromfile <file> Read files to watch from <file> or `-' for stdin

    -e|--event <event1> 

access| modify| attrib| open| close| create| delete|unmount

4.inotify实战(实时同步,最好加上--delete)

1.手动调用(inotify)

/opt/tools/inotify-tools/bin/inotifywait -mrq --timefmt '%d%m%y %H:%M' --format '%T %w%f' -e create,close_write,delete,  /data_inotify |while read line; do echo $line >>/var/log/inotify.log;done &

2.脚本实现(rsync+inotify+nfs)实时监控备份NFS

   #!/bin/sh
inotifywait=/opt/tools/inotify-tools/bin/inotifywait
#count=1
$inotifywait -mrq --format '%w%f' -e create,close_write,delete /NFS |while read line
do
cd / &&
#echo ".................Starting rsync $line......................."
rsync -az /NFS rsync_backup@192.168.25.141::backup --password-file=/etc/rsync.password
done

3.配合NFS实现监控

/opt/tools/inotify-tools/bin/inotifywait -mrq --timefmt '%y-%m-%d %H:%M' --format '%T %w%f' -e create,delete  /NFS_141 |while read line; do echo $line >>/var/log/inotify.log;done &

4.写入环境变量中,可以直接使用

cp  /opt/tools/inotify-tools/bin/inotifywait inotifywait

6.关键参数说明

   cd /proc/sys/fs/inotify/     -->有3个重要的目录,对inotify机制有一定的限制

max_queued_events:inotify可以监听的文件数量

max_user_instances:设置每个用户可运行的inotify进程数量

max_user_watches:设置inotify实例事件队列可容纳的事件数量

10k -100k的文件的并发是 200左右

7.inotify优缺点

优点:配合rsync实现实时数据同步

缺点:大于200K的时候有延迟,可以使用sersync解决

调用rsync同步时单进程的

8.sersync功能:

1.配置文件    2.真正的守护进程 socket  3.可以对失败的文件定时重传(定时任务)

4.第三方HTTP接口 5.默认多线程

9.高并发数据实时同步方案小结:

1.inotify(sersync)+rsync  -->文件级别

2.drdb           -->文件系统级别

3.第三方软件的同步功能    mysql级别,oracle,mongodb

4.程序双写                -->一个文件,从前台分别写入2个或者多个服务器

5.业务逻辑解决

全网数据实时备份方案[inotify,sersync]的更多相关文章

  1. 搭建企业级全网数据定时备份方案[cron + rsync]

    1.1.1. 服务端的配置[192.168.25.141] Rsync的端口是:873 man rsyncd.conf 查看帮助 Rsync是Redhat默认自带的,这里只是做了rsync服务器端的后 ...

  2. 全网数据定时备份方案[cron + rsync]

    1.1.1. Rsync(远程同步)介绍 [Rsync等价scp  cp  rm共3个命令的和] 1.什么是Rsync: Linux下面开源的,很快,功能很多,可以实现全量及增量的本地或者远程数据同步 ...

  3. 搭建企业级全网数据定时备份方案[cron + rsync]2

    1.1.1. rsync服务注意的问题 1.服务端 path=/backup/     -->带/ 2.客户端 rsync -avz /tmp/ rsync_backup@192.168.25. ...

  4. 通过rsync+inotify实现数据实时备份同步

    一.环境描述 测试环境 需求:服务器A与服务器B为主备服务模式,需要保持文件一致性,现采用sersync基于rsync+inotify实现数据实时同步 环境描述: 主服务器172.26.7.50 ,从 ...

  5. 通过rsync+inotify实现数据实时备份

    rsync的优点与不足 与传统的cp,scp,tar,备份方式相比,rsync具有安全性高备份迅速支持增量备份的优点,可以满足对实时性要求不高的需求,例如定期备份文件服务器数据到远端服务器,但是,当数 ...

  6. gitlab实时备份方案(非官方命令)

    gitlab自带的备份功能做不到实时备份,为了尽可能减少意外情况导致的丢失数据,自己搞了一个实时备份的功能. 备份的大头主要是两部分,数据库和代码库.数据库由DBA配置主备. 仓库经过测试,通过lsy ...

  7. MSSQL · 最佳实践 · 利用文件组实现冷热数据隔离备份方案

    文件组的基本知识点介绍完毕后,根据场景引入中的内容,我们将利用SQL Server文件组技术来实现冷热数据隔离备份的方案设计介绍如下. 设计分析 由于payment数据库过大,超过10TB,单次全量备 ...

  8. 项目cobbler+lamp+vsftp+nfs+数据实时同步(inotify+rsync)

    先配置好epel源 [root@node3 ~]#yum install epel-release -y 关闭防火墙和selinux [root@node3 ~]#iptables -F [root@ ...

  9. sersync实现数据实时同步

    1.1 第一个里程碑:安装sersync软件 1.1.1 将软件上传到服务器当中并解压 1.上传软件到服务器上 rz -E 为了便于管理上传位置统一设置为 /server/tools 中 2.解压软件 ...

随机推荐

  1. Go语言学习笔记三: 常量

    Go语言学习笔记三: 常量 定义常量 常量就是在声明后不能再修改的量. const x int = 100 const y string = "abc" const z = &qu ...

  2. 学习并发包常用的接口----java.util.concurrent

    1.常用的相关的接口 Callable.(Runnable).Futrue.RunnableFuture.RunnableSheduledFuture.ScheduledFuture.Executor ...

  3. ognl,jstl,struts2标签中符号#,$,%的用法

    STRUTS2标签操作Map <s:iterator value="sundayMap">           <td colspan="7" ...

  4. 开发一个 Windows 级别的操作系统难度有多大?

    在搜索进程相关问题的时候,无意间看到了知乎上面的这个问题,这也是困惑我的问题,只是自己比较懒,没有刨根问底,这次无意间看到了,并且认真看了大神的回答,很受启发,作为记录,贴于此,与各位分享: 来源:知 ...

  5. ubuntu16.04 安装 nginx 服务器

    在线安装 apt-get install nginx 说明 启动程序文件在/usr/sbin/nginx 日志放在了/var/log/nginx中,分别是access.log和error.log 并已 ...

  6. 十三、curator recipes之SharedCounter

    简介 我们可以通过curator实现对一个分布式环境下共享变量的访问,zookeeper将共享变量维护在同一个路径下. 官方文档:http://curator.apache.org/curator-r ...

  7. 【SSH网上商城项目实战02】基本增删查改、Service和Action的抽取以及使用注解替换xml

    转自:https://blog.csdn.net/eson_15/article/details/51297698 上一节我们搭建好了Struts2.Hibernate和Spring的开发环境,并成功 ...

  8. HDU 1875(最小生成树)

    因为是全连接图,所以也可以用最小生成树 这道题给边加了一个限制条件,(10<=x<=1000),所以可能不能全连通,需要判断 #include <cstdio> #includ ...

  9. spss C# 二次开发 学习笔记(三)——Spss .Net 开发

    Spss .Net 二次开发的学习过程暂停了一段时间,今天开始重启. 之前脑残的不得了,本想从网上下载一个Spss的安装包,然后安装学习.于是百度搜索Spss,在百度搜索框的列表中看到Spss17.S ...

  10. Delegate背后的秘密

    表面上看来使用delegate是一件很简单的事. 用delegate关键字定义,使用老套的new创建一个instance ,使用熟悉的方法调用写法调用,只不过不在是方法名,而是委托名. 但是在这背后C ...