2015-03-17 4 views
0

У меня есть inotify на моем Linux-сервере. Я просмотрел много сообщений о том, как использовать inotify, и нашел пример кода c, который следит за каталогом для создания/удаления файла. Он работал отлично как на локальном каталоге и Nfs direcory (что я на самом деле нужно)inotify - каков наилучший способ сделать это?

Теперь, глядя на opitons о том, как сделать этот процесс работает всегда я вижу есть приведенные ниже варианты по крайней мере, от того, что я понимаю

  1. Я предполагаю попробовать запустить этот код c с ожиданием и никогда не закрывать его?
  2. incrond - это, по-видимому, процесс демона. Кажется, у меня нет этого на моем Linux-сервере, у меня есть rhel5, поэтому я думаю, мне нужно его установить. Не совсем понятно, как будет работать incrond.
  3. Inotify-инструменты - это звучит проще всего, как он говорит, что я могу просто использовать команды в сценарии оболочки

У меня тоже есть такие вопросы, как то, что происходит, когда монтирования удаляется, сервер выключается и т.д., будет Инотизировать знать, чтобы забрать, откуда он ушел ?!

Я знаю, что это много вопросов, но любые указатели мне очень помогли. Заранее спасибо. Тем временем я продолжу играть с одинаковым кодом c.

+0

Почему вы хотите использовать [inotify (7)] (http://man7.org/linux/man-pages/man7/inotify.7.html)? Зачем? Каков фактический прецедент? Измените свой вопрос, чтобы улучшить его. –

ответ

0

Я не думаю, что inotify(7) работает надежно с сетевыми файловыми системами (либо NFS, либо CIFS).

Он может работать (на локальном хосте), если локальный хост модифицирует/записывает некоторую систему, установленную NFS.

Он не будет работать (на локальном хосте), если какой-либо удаленный клиент модифицирует/записывает некоторую систему монтирования NFS (смонтированную локальным хостом).

Поскольку протокол NFS (по крайней мере, те, что я знаю, pre NFS4) является протоколом RPC, и нет никакого способа для удаленного сервера NFS (установка этой системы NFS) сигнализировать удаленным клиентам о том, что что-то происходит.

+0

Вы правы. Он не работает, когда я касаюсь файла на сервере nfs. У меня есть reuqirement, где мне нужно прослушивать каталог, и всякий раз, когда приходит новый файл, мне нужен выполненный сценарий оболочки, который будет принимать имя файла и генерировать ссылочное сообщение и отправлять ему приложение, которое затем подберет файл и обрабатывать его. Все эти каталоги являются NFS. Если inotify не работает, что еще я могу использовать? – md1980

+0

Ничто не будет работать надежно, если только оно не запущено на самом сервере NFS. Вы можете запустить на клиенте команду 'find' в смонтированной системе NFS, но это может быть медленным (и не будет абсолютно надежным) –

Смежные вопросы