zoukankan      html  css  js  c++  java
  • inotify事件监控

    一、原理:

    inotify事件监控,可以监控文件系统中添加,删除,修改,移动等各种事件,一旦发现数据彼此不同,会通知rsync同步推送数据。inotify + rsync可以时时同步

     

    二、准备工作

    1、需要用云yum仓库安装软件包inotify-tools 
    inotify-tools,可提供两个工具(1)inotifywait,可监控文件变化。(2)inotifywatch 可用来统计系统访问次数 
    2、搭建云yum仓库 
    【2.1】确认可以上网,ping www.baidu.com 
    【2.2】下载配置文件 wget -O /etc/yum.repos.d/epel.repohttp://mirrors.aliyun.com/repo/epel-6.repo 
    【2.3】清空缓存 yum -y clean all 
    【2.4】互联网上创建新缓存 yum makecache 
    3、安装inotify-tools软件包 
    4命令说明: 
    【4.1】wget:下载命令 -O:指定下载位置 
    【4.2】inotifywait 监控命令 
    常用参数: 
    -r 递归查询目录 
    -q 打印很少的信息,仅仅打印监控事件的信息 
    -m 始终保持事件监听状态 
    -e 各种事件含义 
    【4.3】nohup:让用户的程序当成一个守护进程,即使用户下线了,守护进程仍然存在

     

    三、应用实例

    例1、表示以年月日小时分钟的时间信息和路径及文件名监控backup目录的创建事件

    inotifywait -mrq --timefmt '%y %m %d %H %M' --format '%T %w%f' -e create /backup
    

    例2、表示以年月日小时分钟的时间信息和路径及文件名监控backup目录的删除事件

    inotifywait -mrq --timefmt '%y %m %d %H %M' --format '%T %w%f' -e delete /backup
    

    例3、表示以年月日小时分钟的时间信息和路径及文件名监控backup目录的更新事件

    inotifywait -mrq --timefmt '%y %m %d %H %M' --format '%T %w%f' -e close_write /backup
    

    命令说明:

    --timefmt:对输出的时间部分的信息做格式化输出
    %y :年
    %m:月
    %d:日
    %H:小时
    %M:分钟
    --format:指定输出信息的格式
    %T :时间
    %w:路径
    %f:文件名
    -e:指定监控的事件
    create:创建事件
    delete:删除事件
    close_write:写关闭事件
    /backup:监控backup目录
    
     

    四、监控服务实战脚本

    #!/bin/bash
    backup_Server=192.168.200.150
    inotifywait -mrq --format '%w%f' -e create,delete,close_write /backup | while read line  
    do
            if [ -f $line ];then
                        rsync -az $line --delete rsync_backup@$"backup_Server"::backup --password-file=/etc/rsync.password
                else
                        cd /backup
                        rsync -az ./ --delete rsync_backup@$backup_Server::backup --password-file=/etc/rsync.password
            fi
    done
  • 相关阅读:
    ionic3打包打包安卓apk详细过程以及遇到的问题
    webpack+vue解决前端跨域问题
    在ionic3+angular4项目中添加自定义图标
    十. 图形界面(GUI)设计13.鼠标事件
    十. 图形界面(GUI)设计13.鼠标事件
    十. 图形界面(GUI)设计12.滚动条
    十. 图形界面(GUI)设计11.对话框
    十. 图形界面(GUI)设计10.菜单
    十. 图形界面(GUI)设计9.列表和组合框
    十. 图形界面(GUI)设计8.选择框和单选按钮
  • 原文地址:https://www.cnblogs.com/mendermi/p/9904706.html
Copyright © 2011-2022 走看看