Inotify 是一个 Linux特性,它监控文件系统操做,好比读取、写入和建立。Inotify 反应灵敏,用法很是简单,而且比 cron 任务的繁忙轮询高效得多。学习如何将 inotify 集成到您的应用程序中,并发现一组可用来进一步自动化系统治理的命令行工具。更加详细介绍查看百科介绍node
Linux内核从2.6.13开始,引入了inotify机制。经过intofity机制,可以对文件系统的变化进行监控,如对文件进行建立、删除、修改等操做,能够及时通知应用程序进行相关事件的处理。这种响应处理机制,避免了频繁的文件轮询任务,提升了任务的处理效率。linux
[root@node1 ~]# uname -a Linux node1 2.6.32-573.el6.x86_64 #1 SMP Thu Jul 23 15:44:03 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
[root@node1 ~]# ls -l /proc/sys/fs/inotify/ total 0 -rw-r--r-- 1 root root 0 Jun 24 01:30 max_queued_events -rw-r--r-- 1 root root 0 Jun 24 01:30 max_user_instances -rw-r--r-- 1 root root 0 Jun 24 01:30 max_user_watches
[root@node1 ~]# rpm -qa inotify-tools inotify-tools-3.14-1.el6.x86_64
出现以上命令代表已经安装inofity,不然经过如下方式添加安装员,在线安装:express
[root@node1 ~]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo [root@node1 ~]# rpm -y install inotify-tools
[root@node1 ~]# which inotifywait /usr/bin/inotifywait
[root@node1 ~]# inotifywait --help inotifywait 3.14 Wait for a particular event on a file or set of files. Usage: inotifywait [ options ] file1 [ file2 ] [ file3 ] [ ... ] Options: -h|--help Show this help text. @<file> Exclude the specified file from being watched. --exclude <pattern> Exclude all events on files matching the extended regular expression <pattern>. --excludei <pattern> Like --exclude but case insensitive. 排除文件或者目录的时候不区分大小写 -m|--monitor Keep listening for events forever. Without this option, inotifywait will exit after one event is received. 始终保持事件监听状态 -d|--daemon Same as --monitor, except run in the background logging events to a file specified by --outfile. Implies --syslog.后台运行 -r|--recursive Watch directories recursively. 递归查询目录 --fromfile <file> Read files to watch from <file> or `-' for stdin. -o|--outfile <file> Print events to <file> rather than stdout. -s|--syslog Send errors to syslog rather than stderr. -q|--quiet Print less (only print events).打印不多的信息,仅仅打印监控事件的信息 安静状态 -qq Print nothing (not even events). --format <fmt> Print using a specified printf-like format string; read the man page for more details. --timefmt <fmt> strftime-compatible format string for use with %T in --format string.指定时间输出的格式 -c|--csv Print events in CSV format. -t|--timeout <seconds> When listening for a single event, time out after waiting for an event for <seconds> seconds. If <seconds> is 0, inotifywait will never time out. -e|--event <event1> [ -e|--event <event2> ... ] Listen for specific event(s). If omitted, all events are listened for. 事件 Exit status: 0 - An event you asked to watch for was received. 1 - An event you did not ask to watch for was received (usually delete_self or unmount), or some error occurred. 2 - The --timeout option was given and no events occurred in the specified interval of time. Events: access file or directory contents were read modify file or directory contents were written attrib file or directory attributes changed close_write file or directory closed, after being opened in writeable mode close_nowrite file or directory closed, after being opened in read-only mode close file or directory closed, regardless of read/write mode open file or directory opened moved_to file or directory moved to watched directory moved_from file or directory moved from watched directory move file or directory moved to or from watched directory create file or directory created within watched directory delete file or directory deleted within watched directory delete_self file or directory was deleted unmount file system containing file or directory unmounted