Назад | Перейти на главную страницу

Наблюдение за созданием файла в сетевой папке в linux

Я пытаюсь найти способ заметить, когда определенный файл записывается в смонтированную сетевую папку. Я знаю, что можно постоянно исследовать местоположение, чтобы узнать, создано ли оно, но это очень приятно. Я также знаю, что можно использовать inotify и его производные, такие как iwatch и inotify-tools, для поиска флагов ядра. Однако это сетевая папка, флаги которой не поднимаются на машине, к которой она смонтирована.

Поэтому мне было интересно, есть ли другие способы сделать это. Я подумал, может быть, использовать очереди сообщений, такие как RabbutMQ. Проверить, когда файлы записаны, отправить сообщение в очередь, затем прочитать сообщение на смонтированном компьютере и сделать что-нибудь?

Если вы считаете, что набор инструментов inotify здесь не подходит, и вы используете Linux, попробуйте Монит и проверка существования или файловой системы против удаленного ресурса.

 check file with path /nfs/appdata.txt
   if does exist then alert 

Может, уборщица пример здесь. Известно имя файла или нет?

У клиента нет способа получить уведомление об изменении смонтированного каталога на сервере (ну, в спецификации nfs v4.1 есть способ сделать это, но нет реализаций, делающих это). Вы должны опросить.

Если вы можете запускать специальные приложения на сервере, вы можете использовать что-то вроде lsync и иметь собственный обработчик для уведомления клиента с помощью механизма по вашему выбору.