gpt4 book ai didi

Dropbox fs.inotify 错误

转载 作者:行者123 更新时间:2023-12-02 18:18:20 24 4
gpt4 key购买 nike

我经常收到以下 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.

最佳答案

注意:如果您想了解 Linux,我强烈建议您实际执行这些步骤,而不仅仅是阅读它们! p><小时/>

如果我输入 apropos inotify在 shell 中查看哪个联机帮助页是关于“inotify”的,我得到以下结果:

$ apropos inotify
inotify (7) - monitoring filesystem events
inotify_add_watch (2) - add a watch to an initialized inotify instance
inotify_init (2) - initialize an inotify instance
inotify_init1 (2) - initialize an inotify instance
inotify_rm_watch (2) - remove an existing watch from an inotify instance
upstart-file-bridge (8) - Bridge between Upstart and inotify

apropos查找联机帮助页。 apropos是你的 friend 。记住apropos .

第一个看起来很有希望,所以让我们尝试用 man inotify 打开它。您现在应该获得 ifnotify 的文档。它说:

NAME
inotify - monitoring filesystem events

DESCRIPTION
The inotify API provides a mechanism for monitoring filesystem events.
Inotify can be used to monitor individual files, or to monitor directo‐
ries. When a directory is monitored, inotify will return events for
the directory itself, and for files inside the directory.

现在我们已经了解了什么 inotify大致如此。让我们看看它是否还有一些有用的东西说说你的错误。

我们可以通过按 /<term><enter> 在联机帮助页中搜索。那么让我们试试:/max_user_watches<enter>这将我们带到本节:

   /proc/sys/fs/inotify/max_user_watches
This specifies an upper limit on the number of watches that can
be created per real user ID.

/proc/sys/fs/inotify/max_user_watches文件与 fs.inotify.max_user_watches 相同设置在/etc/sysctl.conf 。它们只是访问相同 Linux 内核参数的两种不同方式。

您可以按q退出。

我可以使用以下方法查看当前值:

$ cat /proc/sys/fs/inotify/max_user_watches
524288

或者:

$ sysctl fs.inotify.max_user_watches
fs.inotify.max_user_watches = 524288

它们都在 Linux 内核中使用相同的底层值。

请注意,该值实际上是 Dropbox 建议值的五倍!这是在我的 Ubuntu 15.10 系统上。

现在我们了解到:

  1. inotify是一个监视文件和目录更改的 Linux 系统。
  2. 我们可以设置允许用户同时观看的文件或目录数量。
  3. Dropbox 出现错误“无法监控整个 Dropbox 文件夹层次结构”。

根据此信息,Dropbox 似乎无法监视足够的文件和目录的更改,因为 fs.inotify.max_user_watches太低了。

我的建议是:

  1. 检查/etc/sysctl.conf以 root 身份使用任何文本编辑器。确保没有fs.inotify.max_user_watches=100000线在这里。如果有,请将其删除。
  2. 重新启动系统即可恢复默认值。
  3. 检查 fs.inotify.max_user_watches 的值是什么如上所述。
  4. 通过运行 sudo echo 'fs.inotify.max_user_watches=XXX' >> /etc/sysctl.conf && sudo sysctl -p /etc/sysctl.conf 将其加倍。更改后无需重新启动。
  5. 希望这个错误现已得到修复。时间会证明一切。如果不是,请尝试再次将该值加倍。
    • 如果这不能解决问题,可能还有另一个问题,或者您可能只需要增加更多。这在一定程度上取决于您系统的默认值。

注意:较新版本的 systemd 不再加载 /etc/sysctl.conf文件,它只会加载 /etc/sysctl.d/ 中的文件目录。使用 /etc/sysctl.d 中的文件目录应该已被大多数 Linux 发行版支持,因此我建议您使用它来面向 future 。

<小时/>

如果您想知道“为什么首先要有限制?”然后考虑如果一个程序观察一百万个文件会发生什么。那还管用吗?那么十亿呢? 100亿? 10万亿?等等

在某些时候,您的系统将耗尽资源并崩溃。 See here一些“有趣”的方法来做到这一点;-)

关于Dropbox fs.inotify 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35711897/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com