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

Как заставить inotify работать с bindfs?

До сих пор я использовал эту строку в /etc/fstab:

/home/ftp_user /home/app_user/mounts/ftp_user  fuse.bindfs  mirror=app_user 0    0

Это работает. В app_user может получить доступ к файлам ftp_user как если бы файлы были его собственными файлами.

Теперь я хочу использовать inotify. В app_user следит за изменениями в каталоге, подключенном к привязке.

Работает если app_user касается файла в /home/app_user/mounts/ftp_user.

Но не работает, если ftp_user касается файла в /home/ftp_user.

Есть ли способ заставить это работать?

ОС: только Linux.

Обновление: используйте http, если возможно

По возможности избегайте умных решений inotify. Часто лучше получать файлы через http, так как вы можете проверить файлы перед их принятием. Видеть используйте http, избегайте ftp / sftp / scp / rsync / smb / mail

То, чего вы пытаетесь достичь, невозможно.
Посмотрите на https://bindfs.org/ и прокрутите вниз до раздела «Известные проблемы». Вы увидите это

События inotify не запускаются, поскольку FUSE не предоставляет API для этого

Вы можете использовать inotify для мониторинга / home / ftp_user, но в этом случае пользователю, который настраивает часы, потребуется доступ к этому каталогу.

В противном случае работает:

Ftp_user получает виртуальный (смонтированный) каталог, а app_user содержит реальный каталог.

/home/ftp_user /home/app_user/import/ftp_user  fuse.bindfs  mirror=ftp_user 0    0

Новые файлы создаются в виртуальном каталоге (например, /home/ftp_user/new.txt). Это запускает inotify, который запускается как пользователь app_user. В этом примере событие файла создается для /home/app_user/import/ftp_user/new.txt.