Якщо ви використовуєте кілька комп’ютерів, як синхронізувати все? [зачинено]


31

У мене зараз як 4 або 5 комп’ютерів, і мені потрібна краща система для синхронізації всього. Я багато використовую git та github для синхронізації своїх файлів для програм програмування, але тоді є бази даних, файли .bash_profile, bash-скрипти тощо. Іноді, замість синхронізації файлів, я просто входжу з одного комп'ютера на інший. Але це стає досить хаотично. Деякі з моїх комп'ютерів є Ubuntu, а інші - OS X.

Будь-які пропозиції щодо управління робочим процесом, який охоплює декілька персональних комп'ютерів?


1
Можливо, я повинен спробувати мережеві спільні папки
дан

1
@rwong У мене складається враження, що @dan шукає в першу чергу тих "звичайних відповідей". Розглянемо відповідь, яка описує, як використання rsync та загальних папок може допомогти йому.
Адам Лір

1
Дуже обережно.
greyfade

4
Це насправді не характерно для програмування. Можливо, міграція до SU стане кращим місцем для цього?
Вальтер

1
@FarmBoy - це залежатиме від типу БД, оскільки багато з них насправді є лише файлами ... Я все ще бачу це як проблему синхронізації файлів, а не програмування. І я думаю, що відповідей на SU буде набагато більше. Всього мої 2 копійки.
Вальтер

Відповіді:


15

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

Унісон - це найкраща річ, що стосується синхронізації комп'ютерів.


1
Як синхронізувати бази даних? Чи працює це як для DDL, так і для DML?
Ерік Вілсон

На даний момент я не працюю з будь-якими речами, що стосуються SQL / бази даних, тому не можу відповісти на це запитання, оскільки це не стосується мене. Я пропустив цю частину оригінального запитання і відповідав, як я синхронізую всю інформацію про свій код і профіль.
sp0rus

Чи виникають конфлікти версій під час використання Unison? Як їх мінімізувати?
дан

Я завжди синхронізую вручну, перш ніж щось змінювати, щоб редагувати найсвіжішу версію файлу. Також у мене встановлено завдання на щоденну роботу, щоб синхронізувати комп'ютери. Я не мав жодних проблем із конфліктами версій, дотримуючись цю систему. Коли мені довелося відхилятися, і виникає конфлікт, я міг вибрати, на який я хотів би замінити інших.
sp0rus

15

Dropbox

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

Для таких речей, як бази даних, шлях може бути символьним посиланням. Цей потік на форумах DropBox дає невелике уявлення про те, як можна синхронізувати базу даних MySQL. Крім того, ви можете зробити маршрут сценарію "експортувати / імпортувати", або, якщо ви дійсно використовуєте MySQL, ви можете поглянути на Реплікацію та як її реалізувати (це особливість MySQL, яка не використовує DropBox).


Я не бачу, як ви б використовували Dropbox для синхронізації баз даних.
Ерік Вілсон

Ви можете запланувати звичайний дамп / відновлення бази даних до / з каталогу папки.
badgerr

6
@badgerr Розгляньте, як розширити свою відповідь, щоб включити, як Dropbox можна використовувати в різних сценаріях, про які йдеться в ОП.
Адам Лір

Це некрасиво. Я набагато краще скористатися сценарієм, як DbMaintain.
Ерік Вілсон

1
-1 з тієї причини, про яку згадує Анна. Розгорніть свою відповідь, і голосування буде зворотним ;-)
fretje

7
  • Dropbox
  • Гітуб
  • Синхронізація Firefox для закладок / історії / налаштувань Firefox

1
+1 для прямої відповіді вперед і для того, щоб дропбокс знаходився вгорі. Незалежно від останніх проблем з PR щодо спільноти з відкритим кодом, Drobox для мене є безцінним.
Falmarri

3

Ви можете використовувати github для всіх своїх кодів, звичайно, включаючи файли .bash_profile та скрипти bash.

Сервер Hudson / Jenkins CI хороший для підтримки декількох середовищ. Використовується разом із DbMaintain, він також може тримати ваші бази даних синхронізованими.

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

Це стосується машин Windows, ноутбуків Mac та серверів Linux, тому це досить гнучко.


2

Я зберігаю свої точкові файли в git, з гілками для конкретних налаштувань. Це дозволяє мені швидко налаштувати нову машину, і я можу ділитися сценаріями та зберігати їх в останній версії.


1

Можливо, вам потрібно зробити крок назад і запитати себе, навіщо вам так багато комп’ютерів. Це ніби хтось запитує, як зберегти всі його речі однакові у 5 машинах, якими він володіє.

Я б запропонував вам запитати себе, що робить кожна машина, що не робить ваша основна машина, і просто змусити це зробити.

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

Якщо це все у вашому домі, ви можете налаштувати сервер і зберігати там усі речі. Тоді у вас є лише одна машина з даними для резервного копіювання.

Якщо вони віддалені машини, подумайте, як отримати ліцензію 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.


0

Ви думали створити там якусь хмарну інфраструктуру? Здається, єдиний спосіб абстрагуватися, з якої робочої станції є послуга / файл / річ.

Ось посилання на хмару Ubuntu .


0

Зараз я використовую Wuala як заміну для Dropbox. Одна з проблем - відсутність моніторингу папок в Linux. Це в основному сканує всі файли щохвилини. Наступна версія повинна якось виправити це, щоб вони сказали.

Синхронізація в реальному часі в Linux є проблематичною, якщо у вас є десятки тисяч папок (наприклад, сховища git) через спосіб впровадження inotify. Для кожної папки повинен бути один "годинник" - див., Наприклад, https://stackoverflow.com/questions/535768/what-is-a-reasonable-amount-of-inotify-watches-with-linux


Вуала тепер мертвий: en.wikipedia.org/wiki/Wuala
Гвінет Левелін
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.