Сторож не замечает изменений в сетевой папке - PullRequest
0 голосов
/ 19 февраля 2020

Я пытаюсь запустить сторожа, чтобы отслеживать смонтированную папку NFS. Я смог запустить все в локальной файловой системе. Теперь я изменил конфигурацию для мониторинга сетевой папки с моего NAS. Он монтируется локально.

Сервер Watchman работает на клиенте Linux. Все команды сторожа на клиенте Linux.

watchman watch
watchman -- trigger /home/karsten/CloudStation/karsten/CloudStation/Karsten_NAS/fotos/zerene 'photostack' -- /home/karsten/bin/invoke_rawtherapee.sh

Папка расположена на NAS в соответствии с mtab:

192.168.xxx.xxx:/volume1/homes /home/karsten/CloudStation nfs rw,relatime,vers=3,rsize=131072,wsize=131072,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,mountaddr=192.168.xxx.xxx,mountvers=3,mountport=892,mountproto=udp,local_lock=none,addr=192.168.xxx.xxx 0 0

Если я перемещаю файлы в папку на локальном компьютере они узнаются, и сторож запускает действия. НО, если я перемещаю файлы в ту же папку с удаленного клиента, подключенного к той же папке NAS, ничего не происходит.

Есть идеи, что мне нужно изменить, чтобы сторож распознавал файлы, сброшенные с другого клиента в эту папку?

Большое спасибо заранее Карстен

1 Ответ

0 голосов
/ 21 февраля 2020

К сожалению, это невозможно.

Из https://facebook.github.io/watchman/docs/install.html#system -requirements :

Сторож полагается на средства операционной системы для уведомления файла, который означает, что вы, вероятно, получите очень плохие результаты при использовании его на любой удаленной или распределенной файловой системе.

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

...