美文网首页Linuxhadoop 大数据底层理解我用 Linux
inotify-tools监控文件的变动情况

inotify-tools监控文件的变动情况

作者: Tim在路上 | 来源:发表于2018-11-29 19:40 被阅读0次

    在实际的生产中,都会存在不同系统的对接问题,比如A系统将数据生产后存放到/data文件下,B系统需要监控/data文件夹下数据的变动情况,来做出调整,linux系统中inotify-tools正好可以完成系统的监控而supervise正好可以完成进程的持续监控,起到出错重启的效果。

    inotify-tools

    inotify-tools下载地址:http://github.com/downloads/rvoicilas/inotify-tools/inotify-tools-3.14.tar.gz

    上面是inotify-tools的下载地址。

    • 安装inotify-tools
    tar zxvf inotify-tools-3.14.tar.gz
    cd inotify-tools-3.14
    ./configure
    make
    make install
    

    对于make的操作最好在root权限下进行,因为其可能会涉及到创建文件夹或文件的操作,需要对文件夹的访问权限。

    • 创建软链接
    如果是64位系统
    ln -s /usr/local/lib/libinotifytools.so.0 /usr/lib64/libinotifytools.so.0
    
    • 配置参数
    echo 104857600 > /proc/sys/fs/inotify/max_user_watches
    echo 'echo 104857600 > /proc/sys/fs/inotify/max_user_watches' >> /etc/rc.local 
    
    • 设置自启动
    vi /etc/rc.local
    加入下面的代码
    /usr/local/bin/inotifywait -m -r -d -o/var/log/change.log --timefmt '%F %T' --format '%T %w%f %e'  -e close_write -e create /usr/local/test
    其中/var/log/change.log是日志路径,/usr/local/test是监控的网站路径
    reboot重启生效
    
    • 编写监控文件夹的脚本
    #!/bin/bash
    #filename watchdir.sh
    path=$1
    /usr/local/bin/inotifywait -mrq --timefmt '%d/%m/%y/%H:%M' --format '%T %w %f' -e modify,delete,create,attrib $path
    
    

    脚本中命令参数的了解

    inotifywait命令参数

    -m是要持续监视变化。

    -r使用递归形式监视目录。

    -q减少冗余信息,只打印出需要的信息。

    -e指定要监视的事件列表。

    --timefmt是指定时间的输出格式。

    --format指定文件变化的详细信息。

    可以支持的文件夹的操作access 访问,读取文件。
    modify 修改,文件内容被修改。
    attrib 属性,文件元数据被修改。
    move 移动,对文件进行移动操作。
    create 创建,生成新文件
    open 打开,对文件进行打开操作。
    close 关闭,对文件进行关闭操作。
    delete 删除,文件被删除。

    • 测试
    root@hadoop:/opt/docker-sh# bash watchdir.sh /data
    创建docker-sh文件夹
    29/11/18/19:19 /data/ docker-sh
    创建file文件
    29/11/18/19:20 /data/docker-sh/ file
    修该文件
    29/11/18/19:20 /data/docker-sh/ file
    删除文件
    29/11/18/19:21 /data/docker-sh/ file
    
    

    相关文章

      网友评论

        本文标题:inotify-tools监控文件的变动情况

        本文链接:https://www.haomeiwen.com/subject/wfqqcqtx.html