Jeśli korzystasz z wielu komputerów, jak synchronizujesz wszystko? [Zamknięte]

31

Mam teraz 4 lub 5 komputerów i potrzebuję lepszego systemu do synchronizacji wszystkiego. Często używam git i github do synchronizacji moich plików do programowania projektów, ale są też bazy danych, pliki .bash_profile, skrypty bash itp. Czasami zamiast synchronizować pliki, po prostu ssh in z jednego komputera na drugi. Ale robi się dość chaotycznie. Niektóre z moich komputerów to Ubuntu, a inne to OS X.

Wszelkie sugestie dotyczące zarządzania przepływem pracy obejmującym wiele komputerów osobistych?

Dan
źródło
1
Może powinienem wypróbować sieciowe foldery współdzielone
dn
1
@rwong Mam wrażenie, że @dan szuka przede wszystkim tych „zwykłych odpowiedzi”. Rozważ opublikowanie odpowiedzi opisującej, w jaki sposób rsync i foldery udostępnione mogą mu pomóc.
Adam Lear
1
Bardzo ostrożnie.
greyfade
4
To naprawdę nie jest specyficzne dla programowania. Być może migracja do SU byłaby lepszym miejscem do tego?
Walter
1
@FarmBoy - zależałoby to od typu DB, ponieważ wiele z nich to tak naprawdę tylko pliki ... Nadal postrzegam to jako problem z synchronizacją plików, a nie z programowaniem. I myślę, że na SU byłoby o wiele więcej odpowiedzi. Tylko moje 2 centy.
Walter

Odpowiedzi:

15

Używam kombinacji Git do repozytoriów git i Unison do wszystkiego innego. Mam kilka profili unison, więc mogę synchronizować określone rzeczy, i taki, który wszystko synchronizuje. Mam również skrypt bash, który przechodzi i synchronizuje wszystkie rzeczy, a następnie synchronizuje i aktualizuje wszystkie moje repozytoria git.

Unison jest najlepszą rzeczą, jeśli chodzi o synchronizację komputerów.

sp0rus
źródło
1
Jak synchronizujesz bazy danych? Czy działa to zarówno w przypadku zmian DDL, jak i DML?
Eric Wilson
W tej chwili nie pracuję z żadnymi rzeczami związanymi z SQL / bazą danych, więc nie mogę odpowiedzieć na to pytanie, ponieważ nie dotyczy mnie to. Brakowało mi tej części pierwotnego pytania i odpowiadałem, w jaki sposób synchronizuję wszystkie informacje o kodzie i profilu.
sp0rus
Czy podczas korzystania z Unison występują konflikty wersji? Jak je zminimalizować?
dn.
Zawsze synchronizuję ręcznie przed zmianą, więc edytuję najbardziej aktualną wersję pliku. Mam również ustawione zadanie crona na każdą noc do synchronizacji komputerów. Trzymając się tego systemu, nie miałem żadnych problemów z konfliktami wersji. Kiedy musiałem zboczyć i pojawia się konflikt, mogłem wybrać, który z nich chcę zastąpić innymi.
sp0rus
15

Dropbox

Synchronizacja plików jest tak prosta, jak praca nad nimi w folderze, o którym wie DropBox. Film na stronie głównej zajmuje większość opisu, dlatego nie skomentowałem funkcji. Po prostu zmodyfikuj plik z wersją, a DropBox prześle go automatycznie, a następnie wszystkie inne maszyny z DropBox automatycznie pobiorą najnowszą wersję.

W przypadku takich baz danych jak dowiązania symboliczne mogą być dobrym rozwiązaniem. Wątek na forach DropBox zapewnia mały wgląd w sposób synchronizacji bazy danych MySQL. Alternatywnie możesz wykonać trasę skryptu „eksportuj / importuj” lub, jeśli faktycznie używasz MySQL, możesz rzucić okiem na Replikację i jak ją wdrożyć (jest to funkcja MySQL, która nie korzysta z DropBox).

badgerr
źródło
Nie rozumiem, jak używałbyś Dropbox do synchronizacji baz danych.
Eric Wilson,
Możesz zaplanować regularne zrzuty / przywracanie bazy danych do / z katalogu dropbox.
badgerr
6
@badgerr Zastanów się nad rozszerzeniem swojej odpowiedzi, aby uwzględnić sposób wykorzystania Dropbox w różnych scenariuszach wspomnianych przez PO.
Adam Lear
To brzydkie. Wolałbym użyć skryptu, takiego jak DbMaintain.
Eric Wilson
1
-1 z tego powodu, o którym wspomina Anna. Rozszerz swoją odpowiedź, a głosowanie zostanie odwrócone ;-)
fretje
7
  • Dropbox
  • Github
  • Firefox Sync dla zakładek / historii / ustawień Firefoksa
talonx
źródło
1
+1 za bezpośrednią odpowiedź i za umieszczenie skrzynki na górze. Bez względu na ich ostatnie problemy z PR ze społecznością open source, Dropbox jest dla mnie nieoceniony.
Falmarri
3

Oczywiście możesz używać github do całego swojego kodu, włączając w to pliki .bash_profile i skrypty bash.

Serwer CI Hudson / Jenkins jest dobry do obsługi wielu środowisk. W połączeniu z DbMaintain może również synchronizować bazy danych.

Mój zespół używa tej kombinacji do synchronizacji czterech stacji parujących, różnych laptopów oraz środowisk CI, TEST i QA (z serwerami i własnymi kopiami bazy danych).

Dotyczy to komputerów z systemem Windows, laptopów Mac i serwerów Linux, więc jest dość elastyczny.

Eric Wilson
źródło
2

Trzymam moje pliki dot w git, z gałęziami dla konfiguracji specyficznych dla maszyny. Pozwala mi to szybko skonfigurować nową maszynę i mogę udostępniać skrypty i przechowywać je w najnowszej wersji.

Daenyth
źródło
1

Być może musisz cofnąć się o krok i zadać sobie pytanie, dlaczego potrzebujesz tak wielu komputerów. To tak, jakby ktoś pytał, jak zachować wszystkie te same rzeczy w 5 samochodach, które posiada.

Sugeruję, abyś zadał sobie pytanie, co robi każda maszyna, czego nie robi twoja maszyna podstawowa, i po prostu spraw, aby to zrobiła.

Czy zastanawiałeś się nad dobrym laptopem?

Jeśli wszystkie są w twoim domu, możesz skonfigurować serwer i przechowywać tam wszystkie rzeczy. Masz tylko jedną maszynę z danymi do utworzenia kopii zapasowej.

Jeśli są to zdalne maszyny, rozważ uzyskanie Linuxa VPS i przechowuj tam swoje zdalne rzeczy. Nie korzystaj z bezpłatnych usług online, takich jak github, dropbox itp., Ponieważ mogą one zniknąć w niewłaściwym czasie.

Nie używaj AWS do przechowywania swoich rzeczy. przy 0,1 USD / miesiąc / GB, czyli 100 USD / miesiąc / TB lub 1200 USD / rok / TB. Za te pieniądze można kupić około 15 dysków twardych Western Digital 1 TB.

Jeśli prowadzisz firmę i zarabiasz na niej pieniądze, skorzystaj z najlepszej dostępnej usługi, ale szczerze mówiąc, ciężko jest pokonać dyski twarde, aby przenieść wiele danych. Nawet dyski micro USB 32 GB są wielkości paznokcia i można przenosić wiele danych ...

Jest Chmura, Prywatna Chmura. Może powinna istnieć Personal Cloud ...

Christopher Mahan
źródło
Dzięki za wskazówki. Mam 5 komputerów, ale używam tylko 3 z nich i potrzebuję trzech. 1 serwer Ubuntu w domu, laptop 1 Thinkpad Ubuntu (głównym producentem) i 1 Macbook Pro dla rozwoju iOS
Dan
0

Git, migrowany z Subversion, z kolei migrował z CVS. fgit (disclaimer: przeze mnie) o pull push, statusi gc.

10b0
źródło
0

Czy zastanawiałeś się nad stworzeniem infrastruktury chmurowej? Wydaje się, że jest to jedyny sposób na abstrahowanie od tego, na której stacji roboczej znajduje się usługa / plik / rzecz.

Oto link do chmury Ubuntu .

guiman
źródło
0

Używam Wuala teraz jako zamiennika Dropbox. Jednym z problemów jest brak monitorowania folderów w systemie Linux. Zasadniczo skanuje wszystkie pliki co minutę. Następna wersja powinna jakoś to naprawić, tak mówią.

Synchronizacja w czasie rzeczywistym w systemie Linux jest problematyczna, jeśli masz dziesiątki tysięcy folderów (np. Repozytoria git) ze względu na sposób implementacji inotify. Każdy folder musi mieć jeden „zegarek” - patrz na przykład https://stackoverflow.com/questions/535768/what-is-a-reasonable-amount-of-inotify-watches-with-linux

ert
źródło
Wuala jest teraz martwy: en.wikipedia.org/wiki/Wuala
Gwyneth Llewelyn