Оптимальная стратегия управления файлами для одной библиотеки, распределенной на трех компьютерах

Мне ничего не известно о каких-либо пакетах, поэтому вам придется скомпилировать из исходного кода.

Источник: https://www.nginx.com/resources/wiki/modules/fancy_index/

Распакуйте исходники NGINX.

 $ gunzip -c nginx-?.?.?.tar.gz | tar -xvf -

Загрузите последнюю версию с помощью Git.

 $ git clone https://github.com/aperezdc/ngx-fancyindex.git ngx-fancyindex

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

$ cd nginx-?.?.?
$ ./configure --add-module=../ngx-fancyindex  [extra desired options]

Соберите и установите программное обеспечение.

$ make
$ sudo make install

Настройте NGINX с помощью директив конфигурации модулей.

1
13.05.2017, 22:13
1 ответ

Это не совсем проблема Unix/Linux, вы можете сделать это с любым уровнем сложности в любой ОС.

Позвольте мне переформулировать вашу проблему:

  • {1} У вас есть N компьютеров, которые могут или не могут быть подключены друг к другу в любой момент, обычно считается, что они состоят из 1 главного и нескольких подчиненных
  • . ] {2} Ресурсы на этих компьютерах со временем десинхронизируются, переименовываются и т. д.
  • {3} Вы работаете одновременно на одном компьютере
  • {4} Вы хотите повторно синхронизировать компьютеры

Решение:

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

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

{3} приводит к выводу что авторитетная запись находится путем сравнения времени модификации на разных компьютерах.

  • Ключевой предпосылкой для возможности сравнения времени транзакций для поиска последней достоверной записи является наличие точных часов на всех N компьютерах. NTP — ваш друг.

  • Запись модификации обеспечивается механизмом inotify.

  • Решение о том, что куда переместить, может быть принято после выявления конфликтующих записей в N списках файлов. Я рекомендую GNU datamash как одного из первых кандидатов на эту задачу.

  • Перемещение файлов — самая простая задача. rsync достаточно универсален.

Наконец, поскольку мне за это не платят, я оставлю рутинную задачу написания сценариев в качестве упражнения для читателя.

0
28.01.2020, 00:55

Теги

Похожие вопросы