Если вы используете несколько компьютеров, как вы синхронизируете все? [закрыто]

31

У меня сейчас 4 или 5 компьютеров, и мне нужна лучшая система для синхронизации всего. Я часто использую git и github для синхронизации своих файлов для программных проектов, но есть базы данных, файлы .bash_profile, сценарии bash и т. Д. Иногда вместо синхронизации файлов я просто выполняю ssh с одного компьютера на другой. Но это становится довольно хаотичным. Некоторые из моих компьютеров - Ubuntu, а другие - OS X.

Есть предложения по управлению рабочим процессом, охватывающим несколько персональных компьютеров?

Дан
источник
1
Может быть , я должен попробовать сетевые общие папки
дан
1
@ rwong У меня сложилось впечатление, что @dan ищет эти «обычные ответы» в первую очередь. Подумайте над тем, чтобы опубликовать ответ, который описывает, как использование rsync и общих папок может помочь ему.
Адам Лир
1
Очень осторожно.
Greyfade
4
Это действительно не относится к программированию. Возможно, миграция в SU будет лучшим местом для этого?
Вальтер,
1
@FarmBoy - это будет зависеть от типа БД, поскольку многие из них на самом деле являются просто файлами ... Я все еще рассматриваю это как проблему синхронизации файлов, а не как проблему программирования. И я думаю, что было бы намного больше разнообразных ответов на SU. Просто мои 2 цента.
Уолтер

Ответы:

15

Я использую комбинацию Git для репозиториев git и Unison для всего остального. У меня есть несколько профилей унисон, чтобы я мог синхронизировать определенные вещи, и один, который синхронизирует все. У меня также есть bash-скрипт, который проходит и синхронизирует все вещи, которые синхронизирует unison, затем проходит и обновляет все мои git-репозитории.

Unison - лучшая вещь в моей памяти, когда дело доходит до синхронизации компьютеров.

sp0rus
источник
1
Как вы синхронизируете базы данных? Это работает для DDL и DML изменений?
Эрик Уилсон,
В настоящее время я не работаю с какими-либо вещами, связанными с SQL / базой данных, поэтому не могу ответить на этот вопрос, так как он не относится ко мне. Я пропустил эту часть исходного вопроса и отвечал, как синхронизировать весь свой код и информацию в профиле.
sp0rus
У вас возникают конфликты версий при использовании Unison? Как вы их минимизируете?
дан
Я всегда синхронизирую вручную перед тем, как что-либо менять, так что я редактирую самую последнюю версию файла. У меня также есть задание cron на каждую ночь для синхронизации компьютеров. У меня не было проблем с конфликтами версий, потому что я придерживался этой системы. Когда мне приходилось отклоняться и возникал конфликт, я мог выбрать, какой из них я хотел бы заменить другими.
sp0rus
15

Dropbox

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

Для таких вещей, как базы данных, символические ссылки могут быть способом пойти. Эта ветка на форумах DropBox дает представление о том, как можно синхронизировать базу данных MySQL. В качестве альтернативы вы могли бы выполнить маршрут сценария «экспорт / импорт» или, если вы действительно используете MySQL, вы можете взглянуть на Replication и как ее реализовать (это особенность MySQL, которая не использует DropBox).

badgerr
источник
Я не понимаю, как бы вы использовали Dropbox для синхронизации баз данных.
Эрик Уилсон,
Вы можете запланировать регулярный сброс / восстановление базы данных в / из каталога dropbox.
badgerr
6
@badgerr Подумайте о том, чтобы расширить свой ответ, включив в него, как Dropbox может использоваться в различных сценариях, упомянутых в OP.
Адам Лир
Это безобразно Я бы предпочел использовать скрипт-бегун, такой как DbMaintain.
Эрик Уилсон,
1
-1 по той причине, о которой говорит Анна. Разверните ваш ответ, и голосование будет отменено ;-)
fretje
7
  • Dropbox
  • Github
  • Firefox Sync для закладок / истории / настроек Firefox
talonx
источник
1
+1 за прямой ответ и за дропбокс, находящийся сверху. Независимо от их недавних проблем с пиаром в сообществе open source, dropbox для меня неоценим.
Фальмарри,
3

Конечно, вы можете использовать github для всего своего кода, включая файлы .bash_profile и сценарии bash.

CI-сервер Hudson / Jenkins хорош для поддержки нескольких сред. Используемый вместе с DbMaintain, он также может синхронизировать ваши базы данных.

Моя команда использует эту комбинацию для синхронизации четырех сопряженных станций, различных ноутбуков, а также сред CI, TEST и QA (с серверами и собственными копиями БД).

Это касается машин с Windows, ноутбуков Mac и серверов Linux, поэтому он достаточно гибкий.

Эрик Уилсон
источник
2

Я храню мои точечные файлы в git с ветками для машинно-специфических настроек. Это позволяет мне быстро настроить новый компьютер, и я могу поделиться сценариями и сохранить их в последней версии.

Daenyth
источник
1

Возможно, вам нужно сделать шаг назад и спросить себя, зачем вам так много компьютеров. Это как кто-то спрашивает, как сохранить все свои вещи одинаковыми на 5 машинах, которыми он владеет.

Я бы посоветовал вам спросить себя, что делает каждая машина, а не ваша основная, и просто заставить ее это делать.

Вы рассматривали хороший ноутбук?

Если они все в вашем доме, вы можете настроить сервер и хранить все вещи там. Тогда у вас есть только один компьютер с данными для резервного копирования.

Если они являются удаленными компьютерами, рассмотрите возможность получения Linux-VPS и храните там свои удаленные материалы. Не используйте бесплатные онлайн-сервисы, такие как github, dropbox и т. Д., Так как они могут исчезнуть в неподходящее время.

Не используйте AWS для хранения своих вещей. при $ 0,1 / месяц / ГБ, это 100 долларов / месяц / ТБ, или 1200 $ / год / ТБ. За эти деньги вы можете купить около 15 жестких дисков Western Digital емкостью 1 ТБ.

Если вы управляете бизнесом и зарабатываете на нем деньги, используйте самый лучший сервис, который вы можете получить, но, честно говоря, трудно разбить жесткие диски, чтобы перемещать большое количество данных. Даже 32-гигабайтные микро USB-накопители размером с ноготь, и вы можете перемещать много данных вокруг ...

Это Облако, Частное Облако. Может быть, там должно быть Персональное облако ...

Кристофер Махан
источник
Спасибо за советы. У меня 5 компьютеров, но я использую только 3 из них, и мне нужны три. 1 сервер Ubuntu дома, 1 Thinkpad Ubuntu ноутбук (рабочая лошадь), и 1 Macbook Pro для развития IOS
дан
0

Git, перенесенный из Subversion, в свою очередь, перенесенный из CVS. fgit (отказ от ответственности: от меня) для pull push, statusи gc.

l0b0
источник
0

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

Вот ссылка на Ubuntu Cloud .

guiman
источник
0

Теперь я использую Wuala как замену Dropbox. Одной из проблем является отсутствие мониторинга папок в Linux. Он в основном просматривает все файлы каждую минуту. Следующая версия должна исправить это так сказать.

Синхронизация в реальном времени в Linux проблематична, если у вас есть десятки тысяч папок (например, git-репозитории) из-за способа реализации inotify. Для каждой отдельной папки должен быть один «просмотр» - см., Например, /programming/535768/what-is-a-reasonable-amount-of-inotify-watches-with-linux

ерт
источник
Вуала теперь мертва: en.wikipedia.org/wiki/Wuala
Гвинет Ллевелин