Inotify linux 监视子目录

use*_*333 3 linux bash monitoring inotify

是否可以以这种模式查看目录 /storage/data/usernames/Download/ -> /storage/data/*/Download/ 我需要查看是否在每个用户的下载文件夹中进行了更改。也许我需要创建所有路径的列表,将其放入数组并在每个文件夹上循环启动 inotify 进程,但这对系统来说可能很重。

six*_*x-k 5

是的,这很容易。

文件夹是动态创建的,这就是为什么我想跳过用户名部分并观看名称为“下载”的所有文件夹。

蓬松是它的正确工具。

  1. 打开终端:1,运行 fluffy
  2. 在另一个终端:2, fluffyctl -W /storage/data/*/Download
  3. 您必须能够在终端:1 上看到fluffy被调用的事件。
  4. 当您添加新用户但不想重新执行 fluffy 更新路径时,fluffyctl -W /storage/data/*/Download请在添加新用户后再次运行相同的 watch 命令;选择具有相同设置/选择的新用户目录。如果您删除了任何用户,请不要打扰,fluffy 会自行释放资源。

适用于您的用例的命令:

目录内容 -

root@six-k:/opt# ls /opt/*/d1
/opt/d1/d1:
fd1

/opt/dd2/d1:
fd1

/opt/dd3/d1:
Run Code Online (Sandbox Code Playgroud)

调用fluffy-

root@six-k:/home/lab/fluffy# fluffy
Run Code Online (Sandbox Code Playgroud)

控制/管理蓬松 -

root@six-k:/opt# fluffyctl -W /opt/*/d1
Run Code Online (Sandbox Code Playgroud)

事件——

root@six-k:/home/lab/fluffy# fluffy

event:  ACCESS, ISDIR, 
path:   /opt/d1/d1

event:  CLOSE_NOWRITE, ISDIR, 
path:   /opt/d1/d1

event:  ACCESS, ISDIR, 
path:   /opt/dd2/d1

event:  CLOSE_NOWRITE, ISDIR, 
path:   /opt/dd2/d1

event:  ACCESS, ISDIR, 
path:   /opt/dd3/d1

event:  CLOSE_NOWRITE, ISDIR, 
path:   /opt/dd3/d1
Run Code Online (Sandbox Code Playgroud)

注意: inotifywait不优雅,它有问题并报告错误的事件路径。我不想inotifytools在这里回顾,但是如果您想知道它有什么问题,请查看目录树并在其中执行重命名/移动。稍后ls在重命名的目录上做一个,看看它报告的路径!

  • 你是“蓬松”的创造者吗?这可能应该在答案中指出。 (4认同)