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

Спасибо

2
задан 13 April 2017 в 15:23

1 ответ

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

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

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

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

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

  5. Если вы используете sshfs, попробуйте переконнект .

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

0
ответ дан 13 April 2017 в 15:23

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

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