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?


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.


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).


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

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.


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.


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 ...


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.


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 .


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


Wuala jest teraz martwy: en.wikipedia.org/wiki/Wuala
— Gwyneth Llewelyn
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.