好东西,inotify

php的inotify扩展提供了监控文件或目录的功能,可以用来实现,服务的热更新,或安全监控。

inotify一共提供了5个函数:

1、inotify_init() 用于初始化一个实例,返回的是一个 stream 资源对象,可以被标准stream函数使用,如stream_set_blocking()。

2、inotify_add_watch() 将一个文件或目录添加到监控列表中,如果存在,则替换。

3、inotify_read() 从 inotify 实例中读取事件,如果没有返回false,如果有,返回一个 inotify 事件数组。

4、inotify_queue_len() 返回队列中事件的个数,可以理解为系统把 inotify_add_watch 关注的事件一个个加入队列,通过 inotify_read() 读取事件。

5、inotify_rm_watch() 取消监控。

/proc/sys/fs/inotify/max_queued_events默认值: 16384
该文件中的值为调用inotify_init时分配给inotify instance中可排队的event的数目的最大值,超出这个值得事件被丢弃,但会触发IN_Q_OVERFLOW事件
/proc/sys/fs/inotify/max_user_instances默认值: 128
指定了每一个real user ID可创建的inotify instatnces的数量
/proc/sys/fs/inotify/max_user_watches默认值: 8192
指定了每个inotify instance相关联的watches的上限,也就是每一个inotify实例可监控的最大目录数。如果监控的文件数目巨大,需要根据实际情况适当增加此值得大小。注意: max_queued_events 是 Inotify 管理的队列的最大长度,文件系统变化越频繁,这个值就应该越大!如果你在日志中看到Event Queue Overflow,说明max_queued_events太小需要调整参数后再次使用

发表回复

您的电子邮箱地址不会被公开。