2013-11-06 8 views
0

У меня есть два веб-сервера linux (X и Y), обслуживающие мой сайт с помощью балансировщика нагрузки, пользователь может загрузить свой файл (например, изображение) через веб-форму, этот файл перейдет наСинхронизация в реальном времени для каталога в Linux

/var/www/files/token/filename.ext

теперь вопрос:
Как я мог держать файлы каталог синхронизированные в реальном времени таким образом между двумя серверами (при условии, что файлы каталог содержит вложенные и суб-подкаталоги в нем я. не хотят использовать NFS (для высокой доступности)
Любой сценарий высоко оценен

ответ

0

Ядро Linux имеет функцию «inotify», которая обнаруживает изменения inode, в этом случае ее можно использовать для обнаружения изменений в содержимом каталога. Но я не уверен, есть ли для этого инструмент CLI.

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

Эта идея больше похожа на «толкание», которая более чувствительна, чем опрос, на регулярной основе.

+0

INotify - это один уровень глубины в каталоге, а в моем каталоге есть суб и sub-sub dirs :) Я уже думал об этом, но он не будет работать с sub-dirs. – Alaa

+0

@ Ядро Alaa Linux имеет функцию «inotify», которая обнаруживает изменения inode, в этом случае ее можно использовать для обнаружения изменений в содержимом каталога. :) – unwind

+0

@Alaa inotify, вероятно, является единственным выбором, когда дело доходит до мониторинга изменений FS. Хотя он не способен рекурсивно отслеживать содержимое каталога, но его можно обойти, отслеживая создание файла/dir в родительском каталоге и добавляя новых наблюдателей при создании поддиректоров. Кстати, это может помочь: http://linux.die.net/man/1/inotifywait –

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