英语法语西班牙语

Ad


OnWorks 网站图标

inotifywait - 云端在线

在 OnWorks 免费托管服务提供商中通过 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器运行 inotifywait

这是 inotifywait 命令,可以使用我们的多个免费在线工作站之一在 OnWorks 免费托管服务提供商中运行,例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器

程序:

您的姓名


inotifywait - 使用 inotify 等待文件更改

概要


通知等待 [-hcmrq[-e ] [-t ] [- 格式 ] [--timefmt ]
[...]

商品描述


通知等待 有效地等待使用 Linux 的文件更改 inotify的(7) 界面。 它
适用于等待来自 shell 脚本的文件更改。 它可以退出一次
事件发生,或在事件发生时不断执行和输出事件。

OUTPUT


通知等待 将输出关于标准错误和事件信息的诊断信息
标准输出。 可以配置事件输出,但默认情况下它由行组成
以下形式:

被监视的文件名 EVENT_NAMES 事件文件名

被监视的文件名
是发生事件的文件的名称。 如果文件是目录,则
输出斜杠。

EVENT_NAMES
是发生的 inotify 事件的名称,用逗号分隔。

事件文件名
仅当事件发生在目录上时才输出,在这种情况下,目录的名称
导致此事件的目录中的文件被输出。

默认情况下,文件名中的任何特殊字符都不会以任何方式转义。 这个
可以使 inotifywait 的输出难以在 awk 脚本或类似脚本中解析。
--csv- 格式 在这种情况下,选项会有所帮助。

配置


-H, - 帮帮我
输出一些有用的使用信息。

@
递归观察目录树时,排除指定文件
看着。 该文件必须根据相对或绝对路径指定
是否为监视目录提供了相对路径或绝对路径。 如果一个
明确包含和排除特定路径,它将始终被监视。

请注意: 如果您需要查看名称以@ 开头的目录或文件,请给出
绝对路径。

- 从文件
读取文件名以观察或从文件中排除,每行一个文件名。 如果
文件名以@ 开头,如上所述它们被排除在外。 如果是‘-’,
从标准输入读取文件名。 如果您也需要观看,请使用此选项
许多文件作为命令行参数传入。

-米, - 监视器
不是在收到单个事件后退出,而是无限期地执行。 这
默认行为是在第一个事件发生后退出。

-d, --守护进程
与 --monitor 相同,除了在后台将事件记录到必须
由 --outfile 指定。 暗示 --syslog。

-o, --输出文件
输出事件到而不是标准输出。

-是的, --系统日志
输出错误到 系统日志(3) 系统日志模块而不是 stderr。

-r, -递归
观察作为参数传递的任何目录的所有子目录。 手表将
递归设置到无限深度。 不遍历符号链接。 新
创建的子目录也将被监视。

警告: 如果在查看大树根目录时使用此选项,
可能需要很长时间才能建立所有 inotify 手表,并且事件
这段时间不会收到。 此外,由于一个 inotify 手表将
每个子目录建立,可能是inotify的最大数量
将达到每个用户的观看次数。 默认最大值为 8192; 它可以增加
通过写信给 /proc/sys/fs/inotify/max_user_watches.

-q, - 安静的
如果指定一次,程序将不那么冗长。 具体来说,不会
完成建立所有 inotify 手表的状态。

如果指定两次,程序将不输出任何内容,除非是
致命错误。

- 排除
不处理文件名与指定 POSIX 扩展名匹配的任何事件
正则表达式,区分大小写。

--排除我
不处理文件名与指定 POSIX 扩展名匹配的任何事件
正则表达式,不区分大小写。

-t , - 暂停
如果适当的事件没有发生,则退出秒。 如果
为零(默认值),无限期等待事件。

-e , - 事件
仅侦听特定事件。 列出了可以监听的事件
,在 新闻 部分。 可以多次指定此选项。 如果省略,
监听所有事件。

-C, --csv
以 CSV(逗号分隔值)格式输出。 当文件名可能
包含空格,因为在这种情况下,简单地拆分输出是不安全的
每个空格字符。

--timefmt
设置接受的时间格式字符串 时间(3) 与 `%T' 一起使用
--format 选项中的转换。

- 格式
以用户指定的格式输出,使用类似 printf 的语法。 事件字符串
输出限制在 4000 个字符左右,并将被截断到这个长度。
支持以下转换:

%w 这将被替换为发生事件的监视文件的名称。

%f 当目录中发生事件时,这将被替换为目录的名称
导致事件发生的文件。 否则,这将被替换为
空字符串。

%e 替换为发生的事件,以逗号分隔。

%Xe 替换为发生的事件,由其中的字符分隔
“X”的位置。

%T 用 --timefmt 选项指定的格式替换为当前时间,
这应该是适合传递给的格式字符串 时间(3)。

退出 状态


0 程序执行成功,正在监听的事件发生
为。

1 执行程序时发生错误,或发生了未发生的事件
被倾听。 如果发生某些事情,通常会发生后者
强行删除inotify watch,例如被监视的文件被删除或
包含正在卸载的监视文件的文件系统。

2 -t 使用了选项并且在指定的时间间隔内没有发生事件
时间。

新闻


以下事件适用于 -e 选项​​:

ACCESS 读取了监视文件或监视目录中的文件。

修改 被监视的文件或被监视目录中的文件被写入。

ATTRIB 被监视文件或被监视目录中的文件的元数据已被修改。
这包括时间戳、文件权限、扩展属性等。

关闭_写
被监视的文件或被监视目录中的文件在打开后被关闭
在可写模式下。 这并不一定意味着文件已写入。

关闭_不写
被监视的文件或被监视目录中的文件在打开后被关闭
处于只读模式。

关闭 监视的文件或监视目录中的文件已关闭,无论如何
它被打开了。 请注意,这实际上只是通过侦听两者来实现的
关闭_写close_nowrite, 因此收到的所有关闭事件都将输出为
其中之一,不是 关闭。

打开 打开了一个监视文件或监视目录中的文件。

搬去
文件或目录被移动到监视目录中。 即使发生此事件
该文件只是从同一目录移入和移到同一目录。

移动_从
文件或目录已从监视目录中移出。 即使发生此事件
该文件只是从同一目录移入和移到同一目录。

移动 文件或目录已移出或移至监视目录。 请注意,这是
实际上只是通过监听两者来实现 搬去移动_从, 于是
接收到的所有关闭事件将作为其中之一或两者输出,而不是 移动。

移动自我
被监视的文件或目录被移动。 此事件后,文件或目录为
不再被监视。

创建信息图 在监视目录中创建了文件或目录。

删除 被监视目录中的文件或目录被删除。

删除_self
被监视的文件或目录被删除。 在此事件之后,文件或目录是
不再被监视。 请注意,即使没有发生此事件也可能发生
明确地被监听。

卸载
已卸载监视文件或目录所在的文件系统。 后
此事件不再监视文件或目录。 注意这个事件
即使它没有被明确地收听,也可能发生。

示例


例如: 1
在命令行运行 inotifywait 以等待“test”目录中的任何文件
访问。 运行 inotifywait 后,`cat test/foo' 将在单独的控制台中运行。

% inotifywait 测试
设置手表。
手表成立。
测试/访问 foo

例如: 2
一个简短的 shell 脚本,可以有效地等待与 httpd 相关的日志消息并执行某些操作
适当。

#!/ bin / sh的
而 inotifywait -e 修改 /var/log/messages; 做
if tail -n1 /var/log/messages | grep httpd; 然后
kdialog --msgbox "Apache 需要爱!"
fi
完成

例如: 3
自定义输出格式用于观看`〜/测试'。 与此同时,有人运行`touch
〜/测试/坏文件; 触碰 〜/测试/好文件; R M 〜/测试/坏文件' 在另一个控制台中。

% inotifywait -m -r --format '%:e %f' 〜/测试
设置手表。 注意:由于给出了 -r,这可能需要一段时间!
手表成立。
创建坏文件
打开坏文件
属性错误文件
CLOSE_WRITE:CLOSE 坏文件
创建好文件
打开好文件
属性好文件
CLOSE_WRITE:关闭好文件
删除坏文件

洞穴


使用inotifywait时,不保证输出的文件名是最新的
在移动之后,因为它是被监视的 inode。 此外,没有一个
保证已对文件名 inotifywait 执行了观察到的操作
指示在文件系统中的多个名称已知文件的情况下进行监视。

使用 onworks.net 服务在线使用 inotifywait


免费服务器和工作站

下载 Windows 和 Linux 应用程序

Linux 命令

Ad