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

Ниже приведена проблема управления файлами, которую я бы хотел разобраться в 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?
  • Как бы вы решили это?
  • Может ли проблема быть фактически решена?
  • Возможно, я должен отказаться от каких-либо ограничений, чтобы сделать его работоспособным?

  • Почему «ln -s / directory» D: «Работает так, как есть?
  • Какая программа использует какой пакет?
  • клонировать корневое дерево каталогов с помощью busybox
  • Разница между `ls -c` и` ls -t`
  • Почему удаленные файлы постоянно появляются?
  • Заменяйте строки, соответствующие шаблону, строками из другого файла в порядке
  • MacOsx - Shell - список всех .php-файлов и их восьмеричных разрешений внутри папки specificc
  • Изменить временную метку файла и время показа вместо года с помощью ls
  • 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 достаточно универсален.

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

    Interesting Posts

    Как сканировать жесткий диск на низком уровне для восстановления файлов в частично перезаписанном разделе?

    Удалить все файлы, начиная с вопросительного знака

    Как запись каталога точки монтирования отличается от обычной записи каталога в файловой системе

    Как удалить одну строку из истории?

    Приложения, сообщающие «Незаконная инструкция» после обновления glibc

    Прозрачность панели MATE

    Почему grp: lctrl_lshift_toggle по-прежнему сохраняет правильные клавиши в качестве триггеров переключения?

    Чтение из STDIN и непосредственное использование данных (при чтении) или открытие URL-адреса с помощью zbar

    NFS монтируется с неподходящими UID / именами пользователей

    Вставить содержимое буфера обмена без X

    Являются ли несколько записей в журнале @daily crontab упорядоченными, последовательно?

    yum установить несколько пакетов, включая groupisntall

    Будет ли этот метод восстановления LUKS LVM rsync работать?

    Тестирование регулярного выражения из stdin с помощью grep | sed | awk

    Как получить статус выхода фонового процесса?

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