Получение файла Создать уведомления для CIFS Mount в Linux - PullRequest
13 голосов
/ 14 ноября 2011

У меня есть общий ресурс Windows, смонтированный через CIFS на сервере Ubuntu.Мне нужен способ узнать, когда новый файл был добавлен в общий ресурс Windows.Я попробовал эту программу inotify:

http://www.thegeekstuff.com/2010/04/inotify-c-program-example/

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

Ответы [ 4 ]

16 голосов
/ 11 апреля 2012

Я также работал над этим и столкнулся с той же проблемой - кажется (после небольшого траления в Google), что, к сожалению, невозможно использовать inotify на смонтированных разделах CIFS - следующее было на форуме redhat пост пару лет назад:

"В настоящее время это невозможно с CIFS. Перехватчики VFS позволяют Файловая система для настройки дополнительных уведомлений была недавно удалена. единственным «пользователем» из них был CIFS, и он все равно никогда не работал должным образом. Интерфейс ядра для этого тоже имел серьезные проблемы.

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

Хотя это было пару лет назад, похоже, мы не приблизились к тому, чтобы это средство было доступно - позор, я действительно мог бы им воспользоваться!

8 голосов
/ 05 мая 2013

Я тоже столкнулся с этим и пришел к тому же выводу, что и Стивен Салливан (CIFS + inotify = no go).

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

Сказав это, он работает, поэтому наслаждайтесь: http://github.com/rubyruy/watchntouch

0 голосов
/ 15 апреля 2018

Для хостов Windows, использующих док-контейнеры Linux, есть подробная статья о его проблеме с предоставленным решением, которое работает как «docker-windows-volume-watcher»: http://blog.subjectify.us/miscellaneous/2017/04/24/docker-for-windows-watch-bindings.html

Похоже, поддержка не приходитв ближайшее время из-за внедрения Linux CIFS inotify.

0 голосов
/ 12 июля 2013

Это можно сделать .. вроде

Если вы настроили сервер webdav и включили общий ресурс в качестве местоположения webdav, вы можете отслеживать местоположение на вашем сервере samba, одновременно обращаясь к нему через webdav с вашего компьютера с Windows.

Большая проблема с этим заключается в том, что права доступа к файлам b * tch ... как обычно с apache2 webdav, так как отсутствует сквозная аутентификация

...