监控工具inotify-tools

本文介绍如何使用inotify-tools监控文件系统变化,并通过rsync实时备份到另一主机。详细解释了inotifywait和inotifywatch的用法,包括各种选项和事件类型,以及如何设置SSH密钥和部署监控脚本。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

inotify-tools

  • 提供文件监控的一款工具,可以监控计算机的目录
  • 官网: https://sourceforge.net/projects/inotify-tools/
  • 提供的命令:
    • inotifywait , 等待并收集文件或目录中的特定事件
    • inotifywatch,统计收集的信息

 

  • inotifywait

    • 用途: 等待并收集文件的访问信息

    • 语法: ]# inotifywait [选项] file1 [file2] [file3] [...]

    • 选项:

        -m|--monitor  	持续监控(捕获一个事件后不退出,默认会退出)
        -r|--recursive	递归监控(包括子目录及文件)
        -q|--quiet    	减少屏幕输出信息(只输出事件)
        -qq           	不打印内容(甚至是事件)
        -h|--help     	显示帮助信息
        @<file>       	排除指定文件不监控
        --exclude <pattern>   排除与扩展正则表达式<pattern>匹配的文件上的所有事件
        --excludei <pattern>  不区分大小写排除正则<pattern>匹配的文件监控
        --fromfile <file>     从file文件中读取监控路径
        --format <fmt>	使用指定的类似printf的格式字符串进行打印;有关详细信息,请阅读手册页
        --timefmt <fmt>	使用strftime兼容格式字符串,用于--format字符串中的%T 
        -c|--csv      	以csv格式输出事件
        -t|--timeout <seconds>         侦听单个事件时的超时时间,0为永不超时
        -e|--event <event1>            指定监视的事件类型,若省略则显示所有
      
    • 退出状态值:

            0  -  接收到一个要求监视的事件
            1  -  接收到没有要求监视的事件(通常是自己删除或卸载),或发生了错误
            2  -  在--timeout指定的时间内未发生任何事件
      
    • 事件类型:

            access		 已读取文件或目录内容 
            modify		 文件或目录内容已修改写入 
            attrib		 文件或目录属性已修改
            close_write	 文件或目录在以可写模式打开后关闭 
            close_nowrite	 文件或目录在以只读模式打开后关闭 
            close		 文件或目录已关闭,不考虑读/写模式 
            open		 文件或目录已打开 
            moved_to	         文件或目录移动到监视目录 
            moved_from	 从监视目录移动的文件或目录 
            move		 文件或目录移到或移离被监视目录 
            create		 在监视目录中创建的文件或目录
            delete		 在被监视目录中删除的文件或目录 
            delete_self	 文件或目录已删除 
            unmount		 包含卸载的文件或目录的文件系统 
      

 

  • inotifywatch

    • 用途: 收集访问信息并统计

    • 语法: ]# inotifywatch [选项] file1 [file2] [file3] [...]

    • 选项:

        与inotifywait基本相同
        -z|--zero                   在最终表中,输出行和列
        -a|--ascending <event>      按特定事件类型<event>生序排序
        -d|--descending <event>     按特定事件类型<event>降序排序
      
    • 退出状态值:

        0  -  正常退出
        1  -  发生了错误
      
    • 事件类型:

        与inotifywait基本相同
      

 

实例:

#终端1
]# /opt/inotify/bin/inotifywait -mrq /tmp

#打开终端2
]# ls /tmp
]# touch /tmp/test

#切回终端1
/tmp/ OPEN,ISDIR 
/tmp/ CLOSE_NOWRITE,CLOSE,ISDIR 
/tmp/ CREATE test
/tmp/ OPEN test
/tmp/ ATTRIB test
/tmp/ CLOSE_WRITE,CLOSE test
  • inotify监控目录

        实时监控主机(192.168.4.11)目录,当发生变化后,实时备份到另一主机(192.168.4.12)
    
    #被监控主机(192.168.4.11)
    1.部署秘钥
    ]# ssh-keygen -t rsa -f "/root/.ssh/id_rsa" -P ""
    ]# ssh-copy-id root@192.168.4.12
    2.安装工具
    ]# yum -y install inotify-tools
    ]# yum -y install rsync                 #同步双方都需要安装
    3.编写监控脚本
    ]# vim inotify_rsync.sh
    #!/bin/bash
    RES='/var/log/'
    DES='root@192.168.4.12:/log/'
    while inotifywait -rqq $RES
    do
    rsync -az --delete $RES $DES
    done
    4.运行脚本
    ]# bash inotify_rsync.sh &
    
    #备份主机(192.168.4.12)
    ]# yum -y install rsync
    

转载于:https://my.oschina.net/xinsui1314x/blog/3076513

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值