标签: inotify

使用 inotify-tools 在多个目录中递归地连续检测新文件

我刚刚安装了inotify-tools。我想在多个目录中递归地使用通知工具不断检测新文件,并使用后缀发送电子邮件。我可能可以使用 postfix 部分处理发送电子邮件。在尝试检测新文件时,我只是想找出解决此问题的最佳方法。因为有时一次添加多个文件。

linux email ubuntu inotify

21
推荐指数
2
解决办法
6万
查看次数

如何获取当前打开的inotify手表数量?

我的系统是 CentOS。

我试图fs.inotify通过sysctlcall ( sysctl fs.inotify)列出变量来实现这一点,但没有发现任何有用的东西,只有用于指定限制的变量。

linux centos inotify

14
推荐指数
1
解决办法
7612
查看次数

如何知道哪个文件或 inode 触发了 systemd.path 单元?

Systemd 提供了通过 inotify 控制特定路径监视的单元文件:systemd.path(5). 如果在监视路径中修改了文件或目录,systemd.service(5)则调用相应的。

根据inotify(7)手册页:

为了确定发生了什么事件,应用程序从 inotify 文件描述符中读取 (2)s。如果到目前为止没有事件发生,那么,假设一个阻塞的文件描述符,read(2) 将阻塞直到至少一个事件发生(除非被信号中断,在这种情况下调用失败并显示错误 EINTR;参见信号(7) ))。

每次成功的 read(2) 都会返回一个包含以下一个或多个结构的缓冲区:

      struct inotify_event {
          int      wd;       /* Watch descriptor */
          uint32_t mask;     /* Mask of events */
          uint32_t cookie;   /* Unique cookie associating related
                                events (for rename(2)) */
          uint32_t len;      /* Size of name field */
          char     name[];   /* Optional null-terminated name */
      };
Run Code Online (Sandbox Code Playgroud)

因此,如果 systemd 看到监视路径发生变化,是否有办法从read(2)命令中获取任何数据?值得注意的是我需要的name[]使用作为参数传递给该命令的ExecStart=systemd.service(5)单元发言。

[Service]
ExecStart=/usr/bin/command --file=$inotifyName
Run Code Online (Sandbox Code Playgroud)

linux inotify systemd

13
推荐指数
1
解决办法
2757
查看次数

在 OS X 和 Ubuntu 上实时观看文件系统

我正在寻找一个 CLI 工具,它可以观察一个目录并吐出实时更改的文件名。

some_watch_command /path/to/some/folder | xargs some_callback
Run Code Online (Sandbox Code Playgroud)

我知道inotify( inotify-tools?) 并且它似乎是我需要的,但我需要同时兼容 Linux(在我的情况下为 Ubuntu)和 OSX 的东西。

它不需要闪电般快速,但它确实需要在变化时触发(在一秒钟内是合理的)。另外,我不一定需要上面提到的确切 CLI 程序。如果存在一些底层技术并且可以在两个平台上轻松编写脚本,那也很棒。

linux sync inotify macos

12
推荐指数
1
解决办法
7205
查看次数

inotify 或 CIFS 挂载上的等效项?

我正在尝试在 CIFS 共享上使用 incron 或 inotifywait ,但 inotify 似乎不适用于此类安装(参见http://lists.samba.org/archive/linux-cifs-client/2009-April/004319 .html )。是否有其他方法可以通知 CIFS 共享的更改?

cifs inotify

5
推荐指数
0
解决办法
4703
查看次数

如何在 OSX 上配置 fsnotify 的队列大小/监视限制?

注意:这可能是一个 StackOverflow 问题,因为它是关于只能通过 OSX 上的内部 API 访问的东西,但我将其发布在这里,因为它似乎更多的是关于使用已经可用的工具而不是为其编程。

问: 我一直在使用lsyncd(带有 fsnotify 后端,而不是 inotify)来监视 OSX 上的文件系统事件。由于我向其提供了大量高波动性文件,因此我收到了很多 OVERFLOW 事件。

如何在 OSX 10.8 Mountain Lion(或任何其他版本)上配置 fsnotify 的最大内部队列大小?在 inotify/Linux 上,我会使用/proc/sys/fs/inotify/max_user_watches,但我对如何使用 fsnotify 和 OSX 上的配置感到困惑。

如果我真的必须,我可以使用一些内置的奥秘重新编译内核以配置更高的数字,但如果可能的话我宁愿避免这种情况。

filesystems kernel inotify macos

5
推荐指数
1
解决办法
7928
查看次数

Dropbox:无法监控 Dropbox 文件夹

我在 Arch Linux 系统上使用 Dropbox。几个月来一切正常,直到今天。从命令行运行 Dropbox 时,它会打印错误消息:

Unable to monitor entire Dropbox folder hierarchy. Please run "echo fs.inotify.max_user_watches=100000 | sudo tee -a /etc/sysctl.conf; sudo sysctl -p" and restart Dropbox to fix the problem.

我不喜欢不加思索地盲目运行终端命令,尤其是在以sudo. 所以我真的很想知道为什么 Dropbox 需要这个修复,尤其是在运行好几个月之后。

linux dropbox inotify

5
推荐指数
1
解决办法
1873
查看次数

标签 统计

inotify ×7

linux ×5

macos ×2

centos ×1

cifs ×1

dropbox ×1

email ×1

filesystems ×1

kernel ×1

sync ×1

systemd ×1

ubuntu ×1