Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Inotify linux监视子目录_Linux_Bash_Monitoring_Inotify - Fatal编程技术网

Inotify linux监视子目录

Inotify linux监视子目录,linux,bash,monitoring,inotify,Linux,Bash,Monitoring,Inotify,是否可以在此模式下查看目录/storage/data/usernames/Download/->/storage/data/*/Download/I需要查看每个用户的下载文件夹中是否有更改。也许我需要创建所有路径的列表,将其放入数组中,并在每个文件夹上使用循环启动inotify进程,但这对系统来说可能太重了 是的,很容易做到。 文件夹是动态创建的,这就是我想跳过用户名的原因 部分并观看所有名为下载的文件夹 是正确的工具 打开终端:1,运行fluffy 在另一个终端中:2,flufffyctl-W

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

是的,很容易做到。


文件夹是动态创建的,这就是我想跳过用户名的原因 部分并观看所有名为下载的文件夹

是正确的工具

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

    目录内容-

    root@six-k:/opt# ls /opt/*/d1
    /opt/d1/d1:
    fd1
    
    /opt/dd2/d1:
    fd1
    
    /opt/dd3/d1:
    
    调用
    fluffy
    -

    root@six-k:/home/lab/fluffy# fluffy
    
    控制/管理绒毛-

    root@six-k:/opt# fluffyctl -W /opt/*/d1
    
    事件-

    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
    
    注:
    inotifywait
    并不优雅,它有缺陷,并报告错误的事件路径。我不想在这里查看
    inotifitools
    ,但如果您想知道它有什么问题,请查看目录树并在其中执行重命名/移动。稍后在重命名的目录上执行
    ls
    ,查看它报告的路径

    您需要
    inotifywait
    并在父级上设置它,它可以递归地监视您指定的任何更改(例如创建、修改、删除等)。它将输出在该目录结构中更改的文件名。如果您有两个不属于相关层次结构的目录(例如父/子目录),则设置两个监视。问题是,我需要跳过除每个用户homedir中的下载目录之外的所有其他文件夹。它不必是递归的,您只需指定一组不同的目录来监视即可。您甚至可以在一个文件中列出要监视的文件,并使用
    --fromfile
    选项(每行一个文件/目录)初始化监视,以便一个监视可以覆盖所有主目录。它需要由具有足够读取权限的用户运行(如果您想在主目录中下降,则需要执行)。文件夹是动态创建的,这就是为什么我想跳过用户名部分并查看所有名为“下载”的文件夹。感谢您提供关于--fromfile选项的提示,我想我会运行脚本获取所有路径,并将它们保存在列表文件中,然后使用此选项进行监视。您是
    fluffy
    的创建者吗?这可能应该在答案中指出。