zoukankan      html  css  js  c++  java
  • inotify详解

    1)检查当前系统是否支持 inotify 
    uname -r (查看内核版本) 
    ls -l /proc/sys/fs/inotify 
    2)Yum安装inotify-tools 
    cd /etc/yum.repos.d ,wget -o /etc/yum.repos.d/epel.repo httpz://mirrors.aliyun.com /repo/epel-6.repo

    yum -y clean all ,yum -y makecache , yum -y install inotify-tools ,rpm -qa inotifywait inotifywatch

    3)人工测试监控事件 
    inotifywait -mrq --timefmt ‘%y %m %d %H %M --format ‘%T %w%f’ -e creat /backup 
    w 是指路径 T 是指时间 f 是指文件 
    creat是创建 delete 删除 close_write 文件写模式 move_to 移动 
    4)编写 inotify 时时监控脚本 
    1.#!/bin/bash 
    2. 
    3.Path=/data 
    4.backup_Server=172.16.1.41 
    5. 
    6. 
    7./usr/bin/inotifywait -mrq --format '%w%f' -e create,close_write,delete /data | while read line 
    8.do 
    9.if [ -f $line ];then

    10.rsync -az backup_Server::nfsbackup --password-file=/etc/rsync.password 
    11.else 
    12.cd $Path &&\

    13.rsync -az ./ --delete rsync_backup@$backup_Server::nfsbackup --password-file=/etc/rsync.password 
    14.fi 
    15. 
    16.done

    5)脚本加入开机自启动 
    echo "/bin/sh /server/scripts/inotify.sh &" >> /etc/rc.local 
    提示: 一个& 代表从后台开始运行该条命令。 
    Inotify实时并发: 
    结论:经过测试,每秒200文件并发,数据同步几乎无延迟(小于1秒) 
    5.8 inotify 优点: 
    1)监控文件系统事件变化,通过同步工具实现实时数据同步。 
    5.9 inotify 缺点 
    1)并发如果大于200个文件(10-100k),同步就会有延迟 
    2)我们前面写的脚本,每次都是全部推送一次,但确实是增量的。也可以只同步变化的文件,不变化的不理。 
    3)监控到事件后,调用rsync同步是单进程的,而sersync为多进程同步。既然有了inotify-tools,为什么还要开发sersync? 
    5.10 serysync功能多:(inotify+rsync命令) 
    1)支持通过配置文件管理 
    2)真正的守护进程socket 
    3)可以对失败文件定时重传(定时任务功能) 
    4)第三方的HTTP接口(例如:更新cdn缓存) 
    5)默认多进程rsync同步 
    5.11 高并发数据实时同步方案小结: 
    1)inotify(sersync)+ rsync,是文件级别的。 
    2)drbd文件系统级别,文件系统级别,基于block块同步,缺点:备节点数据不可用 
    3)第三方软件的同步功能:mysql同步(主从复制),oracle,mongodb 
    4)程序双写,直接写两台服务器。 
    5)利用产品业务逻辑解决(读写分离,备份读不到,读主)

  • 相关阅读:
    Ubuntu14.04安装ROS Indigo
    STM32F103移植uCOSIII始终卡在PendSV或Systick处解决办法
    STM32F103移植uCOSIII始终卡在PendSV或Systick处解决办法
    WIN7下PS/2等键盘失灵无法使用的解决办法--实测有效
    WIN7下PS/2等键盘失灵无法使用的解决办法--实测有效
    在altium designer9 等中使用protell99se的如0805,0603等PCB封装库
    在altium designer9 等中使用protell99se的如0805,0603等PCB封装库
    VB将输入文本框的数字分割并按十六进制发送
    Windows 10同步时间的方法
    maven安装cucumber的pom文件设置
  • 原文地址:https://www.cnblogs.com/666boke/p/9913007.html
Copyright © 2011-2022 走看看