这是 iwatch 命令,可以使用我们的多个免费在线工作站之一在 OnWorks 免费托管服务提供商中运行,例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器
程序:
您的姓名
IWATCH - 使用 inotify 的实时文件系统监控程序
概要
IWATCH [-d[-f ] [-v[-p ]
IWATCH [-c 命令[-C 字符集[-e 事件[,事件[,..]]] [-h| - 帮帮我[-m ]
[-r[-s ] [-t ] [-v[- 版[-x 例外]
[-X <regex 绳子 as 例外>]
商品描述
inotify (inode notify) 是一个 Linux 内核子系统,用于监视文件系统中的事件和
将这些事件实时报告给应用程序。
inotify 可用于监视单个文件或目录。 当目录是
受监控,inotify 将返回目录本身以及此目录中的文件的事件
目录。 inotify 支持已添加到 Linux Kernel 2.6.13。
iWatch 是一个 Perl 包装,用于 inotify 以监视特定目录或文件中的更改,
实时向系统管理员发送警报。 它可以:
· 通过电子邮件发送有关更改的通知。
· 立即采取可编程的行动, as 通过 XMPP 消息发出警报,
WhatsApp 或执行本地程序或脚本。
· 行为 as HIDS(基于主机的入侵检测系统)或完整性检查器,
补充本地防火墙系统。
iWatch 可以运行 as 守护进程, as 好简单 命令. 守护进程模式使用 XML
配置文件,并放置要监视的目录和文件(目标)列表。 这
命令 行模式将在没有配置文件的情况下运行。 你只需要把
必要的信息(要观看的目标、电子邮件、 例外, 递归性, 要监视的事件
和 命令 执行)在 命令 线。 两种模式的选项不能混合
在一起。
在 XML 配置文件中,每个目标都可以有自己的电子邮件联系点。 这个
联系点将收到有关受监控目标的任何更改的电子邮件通知。 你
可以递归地监视目录,也可以设置异常列表
不想监视受监视目录内的目录/文件。 也可以
禁用电子邮件通知,而是设置一个 命令 事件发生时执行。
默认情况下,iWatch 仅监控以下事件:close_write、create、delete、move、
delete_self 和 move_self。 但是您可以指定任何可能的事件,例如访问、属性、
修改或all_events。 有关更多详细信息,请参阅事件部分。
配置
iWatch 守护进程模式(后台)的使用:
-d 执行应用程序 as 守护进程。 如果没有这个,iWatch 将在前台运行
选项。
-f
指定备用配置文件。 默认是 /等等/IWATCH/iwatch.xml。
-p
指定备用 pid 文件。 默认值:/var/run/iwatch.pid。
-v 详细点。
用法 命令 iWatch 的线路模式(前台):
-c <命令>
您可以指定一个 命令 事件发生时执行。 详情
关于可用字符串,请查看 STRINGS FOR COMMAND 部分。
-C <字符集>
指定 字符集 (默认为 utf-8)。
-e
指定要观看的事件列表。 有关可能的详细信息
事件,看看事件部分。
-H, - 帮帮我
打印帮助信息。
-m
联系人的电子邮件地址。 如果没有这个选项,iWatch 将不会发送任何
电子邮件通知。
-r 查看目录时的递归性。
-s 开|关
启用或禁用向系统日志报告(默认为关闭/禁用)。
-t
指定过滤器 绳子 (regex) 与文件名或目录进行比较
姓名。 仅当文件/目录名称匹配时才会报告事件
过滤 绳子. 如果您想观看类似的文件,这很有用 / etc / passwd文件 or
/etc/shadow.conf 而不是观看这个单个文件,只需观看 /等
带有 filter="passwd|shadow" 的目录,因为如果你只看
passwd/shadow 文件,更改此文件后将删除观察者
文件,您将不会收到其他通知。 这是由
更改 passwd 或 shadow(例如 passwd 或 chfn)的应用程序,它们不会
直接更改文件,但创建一个新文件并将其移动到 passwd 或
影子文件。 所以这 命令 将删除 inode,因此
观察者。
-v 详细模式。 此选项将显示当前的主要操作。
- 版
打印版本号。
-x <例外 文件 or 目录>
指定不应监视的文件或目录。
-X <regex 绳子 as 例外>
像 -x 但指定一个正则表达式 绳子 as 例外.
字符串 用于 指挥
当使用 '-c <命令>' 选项,这些字符串将可用:
%c 事件 cookie 编号。
%e 事件名称。
%f 获取事件的文件名的完整路径。
%F 如果moved_to 事件的旧文件名。
%p 程序名称 (iWatch)。
%v 版本号。
新闻
以下是您可以与 ' 一起使用的可能事件-e' 选项:
ACCESS 文件被访问。
ATTRIB 文件属性已更改。
关闭 文件关闭,无论读/写模式如何。
关闭_不写
文件以只读模式打开后关闭。
关闭_写
文件以可写模式打开后关闭。
创建信息图 在监视目录中创建了一个文件。
删除 在监视目录中删除了一个文件。
删除_self
被监视的文件被删除。
忽视
文件被忽略。
目录 事件针对 dir 发生。
修改 文件被修改。
移动 移动了监视目录中的文件/目录。
移动_从
文件被移走了。
搬去
文件已移至。
单稳
只发送一次事件。
open 文件被打开。
q_溢出
事件排队溢出。
卸载
已卸载存在监视文件的文件系统。
默认
close_write、创建、删除、移动、delete_self 和 move_self。
所有事件
所有事件。
指挥 LINE 用法 示例
$ IWATCH / tmp目录
监测变化 / tmp目录 具有默认事件的目录。
$ IWATCH -r -e 访问,创建 -m [电子邮件保护] -x /etc/邮件 /等
仅监控访问和创建事件 /等 目录,递归地,与
/etc/邮件 as 例外,并将电子邮件通知发送至 [电子邮件保护].
$ IWATCH -r -c (w;ps -ef)|邮件 -s '%F 是 改变了' 根@本地主机 /箱
显示器 /箱 目录,递归,并执行命令 'w' 和 'ps -如果',
将结果发送到 root@localhost,使用 ' 被改变了' as
主题。 要了解“%f”,请查看 STRINGS FOR COMMAND 部分。
$ IWATCH -r -X '.svn' 〜/项目
显示器 〜/项目 目录,递归,但排除其中的任何 .svn 目录。
这不能用普通的 '-x' 选项,因为 '-x' 只能排除
定义的路径。
配置 文件 例
默认配置文件是 /等等/IWATCH/iwatch.xml。 看一个例子:
<guard email="[电子邮件保护]" name="iWatch"/>
WEB服务器完整性监控
<contactpoint email="[电子邮件保护]" name="管理员"/>
<path type="recursive" syslog="on" alert="off" exec="echo %p: %e %f | /usr/bin/sendxmpp -t [电子邮件保护]">在/ var / WWW
/var/www/计数器
前两行将定义 XML 版本和定义所用模式的文件
通过 iWatch(默认为 /等等/IWATCH/iwatch.dtd)。 这些行不需要更改。
这语句用于标记配置起点。 最后一行
配置必须是. 'guard email' 行用于指定发件人
通过电子邮件发送通知时要使用的电子邮件和名称。 换句话说,这条线
定义“发件人:”电子邮件字段。 这划定一个块
关于手表或某些手表程序的定义。
这地方可以有几个块。 在这些里面
块( ), 这空格用于添加标题
将识别块的用途。 'contactpoint' 行包含目的地
通过电子邮件发送通知时的电子邮件地址(收件人:)和姓名。
每个line 可以监视文件/目录并执行操作。 第一条路
显示的行将递归监视目录/var/www。 由于没有定义事件,
iWatch 将使用默认事件(close_write、create、delete、move、delete_self 和
move_self 事件)。 如果事件发生,系统日志将注册它并报告一条消息
程序名称 (%p = iWatch)、事件 (%e) 和监控的文件/目录名称 (%f)
将通过 XMPP 协议(sendxmpp 外部程序)发送到 [电子邮件保护]。 注意
alert="off" 将禁用任何发送电子邮件。 另一个重要的一点是第二行
从观察中排除 /var/www/counter 文件/目录。
显示的示例使用 sendxmpp 命令. 其他好的可能性是应用
yowsup-cli 命令 发送 WhatsApp 消息。
一个新的例子。 配置如下所示,iWatch 将工作超过三个
块。
公共网站
<contactpoint email="[电子邮件保护]" name="网站管理员"/>
/var/www/localhost/htdocs
/var/www/localhost/htdocs/关于
/var/www/localhost/htdocs/Photos
操作系统
/ etc / apache2
/ etc / passwd文件
/etc/邮件
/etc/邮件/统计
/等
只测试
/tmp/目录1
/tmp/目录2
/tmp/dir3
/tmp/dir4
首先块监视一个目录并对两个文件有特殊的作用
但没有执行 命令 在他们中都没有。 第一条路径是单个(非递归)
目录 /var/www/localhost/htdocs 和任何通知将发送到联系点
[电子邮件保护]. 请注意,没有指定事件。 所以,默认 (close_write,
create、delete、move、delete_self 和 move_self)将被使用。 第二个路径是文件
/var/www/localhost/htdocs/关于。 该文件位于最后一个目录中。 区别
是该文件上的所有活动都将记录在 /var/log/syslog 中。 第三条路
将递归地监视目录 /var/www/localhost/htdocs/Photos(也在
第一个目录)。 没有日志。 默认事件将通过邮件通知。
第二块有五个监控。 所有通知都将发送到 admin@localhost。
第一个块的主要新颖之处在于路径使用“过滤器”指令来观察
/ etc /阴影 和 / etc / passwd文件 同时。 要更好地了解这种情况,请参阅
'-t' 在选项部分。
最后一个块监控第一行的一个默认事件和几个非默认事件
以下三行。 在所有行中都定义了“警报” as '离开'。 所以,iWatch 将
不使用内置邮件引擎发送电子邮件。 但是,在三行中,外部
命令 “邮件”用于发送个性化电子邮件。
学习 关于我们 新闻
了解事件的一个技巧是观看 iWatch 命令 用 ' 执行-e all_events'
选项。 下面的例子将监视一个 'ls / tmp目录' 命令.
$ iwatch -e all_events / tmp目录
[17/Jun/2014 11:22:59] IN_ISDIR,IN_OPEN / tmp目录
[17/Jun/2014 11:22:59] IN_ISDIR,IN_CLOSE_NOWRITE / tmp目录
另一个例子,它监控内部文件的创建 / tmp目录:
$ iwatch -e all_events / tmp目录
[17 年 2014 月 11 日 29:43:XNUMX] IN_MODIFY /tmp/file.txt
[17 年 2014 月 11 日 29:43:XNUMX] IN_OPEN /tmp/file.txt
[17 年 2014 月 11 日 29:43:XNUMX] IN_MODIFY /tmp/file.txt
[17 年 2014 月 11 日 29:43:XNUMX] IN_CLOSE_WRITE /tmp/file.txt
[17/Jun/2014 11:29:43] * /tmp/file.txt 已关闭
所以,在最后一个例子中发生了修改、打开和关闭写操作。
规则 验证
从 0.2.0 版本开始,iWatch 会检查 XML 文件的有效性,如果它有以下条目
前两行:
检查将在描述的模式上进行 /等等/IWATCH/iwatch.dtd 文件。 没有
显示的两行,iWatch 只会警告您必须使用 DTD 文件,并且
它继续运行 as 正常,无需 XML 验证。 iWatch 的 XML 格式非常
简单易懂,它使用以下 DTD:
<!ATTLIST config
字符集 CDATA "utf-8"
>
<!ATTLIST guard
电子邮件 CDATA #REQUIRED
命名 CDATA #IMPLIED
>
<!ATTLIST contactpoint
电子邮件 CDATA #REQUIRED
命名 CDATA #IMPLIED
>
<!ATTLIST path
输入 CDATA #REQUIRED
警报(开|关)“关”
事件 CDATA #IMPLIED
执行 CDATA #IMPLIED
过滤 CDATA #IMPLIED
系统日志(开|关)“关”
使用 onworks.net 服务在线使用 iwatch