zoukankan      html  css  js  c++  java
  • inotify-tool实时监控服务器文件状态变化 学习总结

    一、安装Inotify-tools工具

    1、查看服务器内核是否支持inotify

    ll /proc/sys/fs/inotify #列出文件目录,出现下面的内容,说明服务器内核支持inotify
    
    -rw-r--r-- 1 root root 0 Mar 7 02:17 max_queued_events
    
    -rw-r--r-- 1 root root 0 Mar 7 02:17 max_user_instances
    
    -rw-r--r-- 1 root root 0 Mar 7 02:17 max_user_watches
    
    备注:Linux下支持inotify的内核最小为2.6.13,可以输入命令:uname -a查看内核
    
    CentOS 5.X 内核为2.6.18,默认已经支持inotify

    2、安装inotify-tools

    yum install make gcc gcc-c++ #安装编译工具
    
    inotify-tools下载地址:https://udomain.dl.sourceforge.net/project/inotify-tools/inotify-tools/3.13/inotify-tools-3.13.tar.gz
    上传inotify-tools-3.13.tar.gz到/usr/local/src目录下
    
    cd /usr/local/src
    
    tar zxvf inotify-tools-3.13.tar.gz #解压
    
    cd inotify-tools-3.13 #进入解压目录
    
    ./configure --prefix=/usr/local/inotify #配置
    
    make #编译
    
    make install #安装

    3、设置系统环境变量,添加软连接

    echo "PATH=/usr/local/inotify/bin:$PATH" >>/etc/profile.d/inotify.sh
    
    source /etc/profile.d/inotify.sh #使设置立即生效
    
    echo "/usr/local/inotify/lib" >/etc/ld.so.conf.d/inotify.conf
    
    ln -s /usr/local/inotify/include /usr/include/inotify

    4、修改inotify默认参数(inotify默认内核参数值太小)

    
    修改参数:
    
    vi /etc/sysctl.conf #添加以下代码
    
    fs.inotify.max_queued_events=99999999
    
    fs.inotify.max_user_watches=99999999
    
    fs.inotify.max_user_instances=65535
    
    :wq! #保存退出
    
    参数说明:
    
    max_queued_events:
    
    inotify队列最大长度,如果值太小,会出现"** Event Queue Overflow **"错误,导致监控文件不准确
    
    max_user_watches:
    
    要同步的文件包含多少目录,可以用:find /home/www.osyunwei.com -type d | wc -l 统计,必须保证max_user_watches值大于统计结果(这里/home/www.osyunwei.com为同步文件目录)
    
    max_user_instances:
    
    每个用户创建inotify实例最大值

    二、创建实时监控脚本

    mkdir -p /home/inotify #创建目录
    
    vi /home/inotify/inotif.sh #编辑

    #!/bin/sh

    srcdir=/var/jenkins_home/workspace/build_java/

    inotifywait -mrq --timefmt '%d/%m/%y-%H:%M' --format '%T%w%f' -e attrib ${srcdir}
    | while read file

    do

    echo "hahhahahha"

    done

    三、问题处理

    1.inotify报错upper limit on inotify watches reached

    cat一下这个文件,默认值是8192,echo 8192000 > /proc/sys/fs/inotify/max_user_watches即可~
  • 相关阅读:
    BadUSB 利用
    java 将函数作为参数传递
    odoo12 修行提升篇之 常用的高阶函数 (二)
    odoo12 修行提升篇之 异步定时任务 (一)
    odoo12 修行基础篇之 利用kanban做分析 点击跳转分析模型列表 (九)
    odoo12 修行基础篇之 kanban (八)
    odoo12 修行基础篇之 记录批处理 (七)
    odoo12 修行基础篇之 列表的筛选和分组 (六)
    odoo12 修行基础篇之 添加记录编码 (五)
    odoo12 修行基础篇之 添加工作流和操作记录 (四)
  • 原文地址:https://www.cnblogs.com/lufei33180/p/14108282.html
Copyright © 2011-2022 走看看