rsync学习
rsync+inotify-tools+ssh触发式同步

inotify-tools用法

妙音 posted @ 2014年12月02日 14:40 in linux with tags inotify; , 4668 阅读

一、介绍

    inotify-tools是为linux下inotify文件监控工具提供的一套C的开发接口函数库,同时还提供了一系列的命令行工具,这些工具可以用来监控文件系统的事件。Inotify-tools使用用c编写的,除了要求内核(Linux2.6.13开始)支持inotify外,不依赖于其他。inotify-tools提供两种工具,一是inotifywait,它是用来监控文件或目录的变化,二是inotifywatch,它是用来统计文件系统访问的次数。

二、初试

1.查看内核是否支持
➜  ~  grep INOTIFY_USER /boot/config-$(uname -r)
CONFIG_INOTIFY_USER=y
 
2.安装
➜  ~ yum install inotify-tools
 
3.运行inotifywait
➜  ~  inotifywait -rm workspace
Setting up watches.  Beware: since -r was given, this may take a while!
Watches established.
 
4. 触发事件, 查看结果
➜  ~  touch workspace/demo.py 
inotifywait输出
workspace/ CREATE demo.py
workspace/ OPEN demo.py
workspace/ ATTRIB demo.py
workspace/ CLOSE_WRITE,CLOSE demo.py

三、语法

inotifywait  [-hcmrq]  [-e  <event> ] [-t <seconds> ] [--format <fmt> ]
       [--timefmt <fmt> ] <file> [ ... ]

四、选项

-r, --recursive  监视一个目录下的所有子目录。
-e , --event     指定监视的事件。
-m, --monitor    接收到一个事情而不退出,无限期地执行。默认的行为是接收到一个事情后立即退出。
-q, --quiet      指定一次,不会输出详细信息,指定二次,除了致命错误,不会输出任何信息。
-h,--help        输出帮助信息
@<file>          排除不需要监视的文件,可以是相对路径,也可以是绝对路径。
--fromfile     从文件读取需要监视的文件或排除的文件,一个文件一行,排除的文件以@开头。
-d, --daemon   跟--monitor一样,除了是在后台运行,需要指定--outfile把事情输出到一个文件。也意味着使用了--syslog。
-o, --outfile  输出事情到一个文件而不是标准输出。
-s, --syslog   输出错误信息到系统日志
--exclude      正则匹配需要排除的文件,大小写敏感。
--excludei     正则匹配需要排除的文件,忽略大小写。
-t , --timeout  设置超时时间,如果为0,则无限期地执行下去。
-c, --csv     输出csv格式。
--timefmt     指定时间格式,用于--format选项中的%T格式。
--format      指定输出格式。
%w    表示发生事件的目录
%f    表示发生事件的文件
%e    表示发生的事件
%Xe   事件以“X"分隔
%T    使用由--timefmt定义的时间格式

五、输出

watched_filename EVENT_NAMES event_filename
  • watched_filename 监控文件
  • EVENT_NAMES 事件名
  • event_filename 事件对象文件

六、事件

access  文件读取
modify  文件更改。
attrib  文件属性更改,如权限,时间戳等。
close_write 以可写模式打开的文件被关闭,不代表此文件一定已经写入数据。
close_nowrite 以只读模式打开的文件被关闭。
close  文件被关闭,不管它是如何打开的。
open   文件打开。
moved_to 一个文件或目录移动到监听的目录,即使是在同一目录内移动,此事件也触发。
moved_from 一个文件或目录移出监听的目录,即使是在同一目录内移动,此事件也触发。
move    包括moved_to和 moved_from
move_self 文件或目录被移除,之后不再监听此文件或目录。
create  文件或目录创建
delete  文件或目录删除
delete_self  文件或目录移除,之后不再监听此文件或目录
unmount  文件系统取消挂载,之后不再监听此文件系统。
 
 
参考: https://www.centos.bz/2012/06/inotify-tools-introduction/
 
Avatar_small
Imamia Quran Academy 说:
2023年7月27日 06:00

Hi, first of all, thank you for all this information. Personally I was able to vote on your form and I am very happy with it. I am from Imamia Quran Academy. Online Shia Quran Academy is using this radical idea of taking online classes so that any environmental factor could not disrupt the learning process. Students across the world can be benefited from this learning procedure.


登录 *


loading captcha image...
(输入验证码)
or Ctrl+Enter