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

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

ситуация

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

умысел

Изображение усложняется, потому что иногда, когда вы работаете на компьютере A, а B и C выключены ,

  1. Я получаю новые документы, соответствующие категориям в dir-B и dir-C, поэтому я храню их в локальных копиях;
  2. Я мог бы изменить структуру dir-B и dir-C локально, чтобы улучшить категоризацию. Это сводится к созданию, удалению, переименованию, объединению подкаталогов, перемещению файлов, удалению беспорядка и т. Д. И т. Д.

Однако предполагается, что «главная копия» dir-B (dir-C) должна находиться в компьютере B (C). Итак, в выбранный момент модификации, выполненные на компьютере А, необходимо переносить на компьютер B (C).

Наконец, это должно работать и наоборот, когда я редактирую удобные копии dir-A в B и C.

Вопрос

Я думаю об оптимальной стратегии, чтобы иметь максимальную гибкость при данных ограничениях. Задача 1 – простая проблема синхронизации (я бы использовал rsync ), но задача 2 сложнее.

Следовательно, мне интересно

  • Существуют ли инструменты / утилиты в Linux, которые я мог бы использовать для реализации обеих задач 1 и 2?
  • Как бы вы решили это?
  • Может ли проблема быть фактически решена?
  • Возможно, я должен отказаться от каких-либо ограничений, чтобы сделать его работоспособным?

  • Перенаправление вывода печати на многократные файлы в awk
  • Количество файлов, не содержащих заданную строку
  • Содержимое файла, созданное при открытии
  • Права клонирования и разрешения от другого файла?
  • Используйте rsync для сравнения удаленного каталога с локальным и сохраните различия в другом локальном каталоге
  • регулярное выражение с командой find
  • Поиск по размеру файла
  • Не применяется ли umask к файлам?
  • One Solution collect form web for “Оптимальная стратегия управления файлами для одной библиотеки, распространяемой на три компьютера”

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

    Lemme повторяет вашу проблему:

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

    Решение:

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

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

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

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

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

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

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

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

    Linux и Unix - лучшая ОС в мире.