Унисон против Rsync + установленный привод Remot

Поэтому моя ситуация такова, что я хочу, чтобы мои файлы разработки - Ruby & PHP - были доступны для всех моих машин, когда я дома и в отъезде. Когда я задавал вопрос раньше ( смонтировать мой веб-сервер как диск в Win7 / 8), мне сказали использовать программное обеспечение для контроля версий, но я не хочу загружать локальную копию и работать с ней, чтобы затем загрузить файл новая версия и повторно загрузите новую версию на все машины. Здесь нет группы разработчиков, только я, и большинство моих проблем с dev / debug связано с написанием кода и тестированием его на одной машине, а затем с забыванием обновить мои другие машины. Поэтому я хочу синхронизировать копии файлов на всех моих машинах.

В любом случае я рассматривал возможность использования ownCloud на одном из моих веб-серверов по другой причине и предоставлял моим машинам Win легкий доступ к файлам. На моих машинах Win есть клиент обновления ownCloud, который работает как Google Drive или DropBox с синхронизацией по таймеру. Клиент обновлений ownCloud на моих компьютерах с Ubuntu не хотел устанавливать, и я использую сочетание версий для настольных компьютеров и серверов. Так что мои машины с Ubuntu просто монтируют каталог ownCloud через davfs2 и (как только я получу это), они будут использовать rsync на cron для создания локальной копии - таким образом, мои машины могут продолжать работать, если сервер с файлами ownCloud работает вниз.

Но потом я наткнулся на упоминание об Унисон, о котором раньше никогда не слышал. Похоже, что Unison - это программа, предназначенная для того же, что и дифференциальная rsync. Я неправильно понял?

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

Вопросы:

  1. Правильно ли я считаю, что разрешение входа в систему по SSH является плохой идеей из соображений безопасности?
  2. Есть ли у Unison преимущества, которые я упустил из виду?
  3. Есть ли проблемы с rsync, которые я пропустил? Например, стирание моей локальной копии, если монтирование удаленного сервера прекращается, и теперь каталог выглядит пустым.
  4. Есть ли у Unison преимущества в производительности по сравнению с rsync или наоборот?
  5. Наконец, есть ли способ контролировать монтировки и автоматически восстанавливать их, если они умирают? Я мог бы использовать что-то написать для проверки определенного содержимого на монтировании, но это, кажется, склонно к проблемам.

Спасибо

1 ответ

Решение

Выберите Unison, если вам нужна двусторонняя синхронизация, она лучше подходит для этих сценариев; хотя достижимо и в rsync.

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

  2. Двухстороннее связывание и простота настройки в основном, но все сводится к предпочтениям. Вы можете попробовать оба варианта, чтобы увидеть, какой из них вам больше нравится.

  3. Вы можете выполнить проверки до фактического вызова синхронизации rsync или Unison. Например, вы можете смонтировать каталог удаленной машины через sshfs. Если это не удается, не отключайте синхронизацию. Это может быть частью вашего сценария синхронизации.

  4. Основным узким местом будет скорость сети, и Unison может работать медленнее, если у вас есть огромные объемы данных для синхронизации (~100 ГБ или около того). В противном случае различия незначительны, YMMV. У всех настройки разные. Вы также должны прочитать этот пост как часть ваших соображений.

  5. Если вы используете sshfs, попробуйте параметр переподключения.

Сказав все это, если это только для кода, все же будет хорошей идеей рассмотреть систему контроля версий, как говорили другие. Вы можете разместить git-сервер на домашней машине, и синхронизация кода занимает одну минуту или меньше с помощью одной команды без дополнительных затрат на поддержку монтирования, входа в систему, соединений и т. Д.

Другие вопросы по тегам