Wie synchronisieren Sie alles, wenn Sie mehrere Computer verwenden? [geschlossen]

31

Ich habe jetzt 4 oder 5 Computer und ich brauche ein besseres System, um alles zu synchronisieren. Ich benutze git und github oft, um meine Dateien für Programmierprojekte zu synchronisieren, aber dann gibt es Datenbanken, .bash_profile-Dateien, Bash-Skripte usw. Manchmal synchronisiere ich nur Dateien von einem Computer auf einen anderen. Aber das wird ziemlich chaotisch. Einige meiner Computer sind Ubuntu, andere OS X.

Vorschläge zur Verwaltung eines Workflows, der sich über mehrere PCs erstreckt?

Dan
quelle
1
Vielleicht sollte ich es mit freigegebenen Netzwerkordnern versuchen
dan
1
@rwong Ich habe den Eindruck, dass @dan in erster Linie nach den "üblichen Antworten" sucht. Erwägen Sie, eine Antwort zu veröffentlichen, in der beschrieben wird, wie ihm die Verwendung von rsync und freigegebenen Ordnern helfen kann.
Adam Lear
1
Sehr vorsichtig.
greyfade
4
Dies ist wirklich nicht spezifisch für die Programmierung. Vielleicht wäre die Migration nach SU ein besserer Ort dafür?
Walter
1
@ FarmBoy - es würde von der Art der Datenbank abhängen, da es sich bei vielen von ihnen wirklich nur um Dateien handelt. Und ich denke, es würde viel mehr Antworten auf SU geben. Nur meine 2 Cent.
Walter

Antworten:

15

Ich benutze eine Kombination aus Git für Git-Repositories und Unison für alles andere. Ich habe mehrere unisono Profile, damit ich bestimmte Dinge synchronisieren kann, und eines, das alles synchronisiert. Ich habe auch ein Bash-Skript, das alle Dinge synchronisiert, durchläuft und alle meine Git-Repositories aktualisiert.

Unison ist für mich das Beste, wenn es darum geht, Computer zu synchronisieren.

sp0rus
quelle
1
Wie synchronisieren Sie die Datenbanken? Funktioniert dies sowohl für DDL- als auch für DML-Änderungen?
Eric Wilson
Im Moment arbeite ich nicht mit SQL / Datenbank-bezogenen Dingen, daher kann ich diese Frage nicht beantworten, da sie für mich nicht gilt. Ich habe diesen Teil der ursprünglichen Frage verpasst und habe geantwortet, wie ich alle meine Code- und Profilinformationen synchronisiert bekomme.
Sp0rus
Erhalten Sie Versionskonflikte, wenn Sie Unison verwenden? Wie minimierst du sie?
Dan
Ich synchronisiere immer manuell, bevor ich etwas ändere, damit ich die aktuellste Version der Datei bearbeite. Ich habe auch einen Cron Job für jede Nacht eingestellt, um die Computer zu synchronisieren. Ich habe keine Probleme mit Versionskonflikten gehabt, indem ich mich an dieses System gehalten habe. Wenn ich abgewichen bin und ein Konflikt aufgetreten ist, war es etwas, das ich auswählen konnte, durch welches ich die anderen ersetzen wollte.
sp0rus
15

Dropbox

Das Synchronisieren von Dateien ist so einfach wie das Bearbeiten in einem Ordner, den DropBox kennt. Das Video auf der Hauptseite enthält den größten Teil der Beschreibung, weshalb ich die Funktionen nicht kommentiert habe. Ändern Sie einfach eine versionierte Datei und DropBox lädt sie automatisch hoch. Alle anderen Computer mit DropBox laden automatisch die neueste Version herunter.

Für Dinge wie Datenbanken könnten Symlinks der richtige Weg sein. Dieser Thread in den DropBox-Foren bietet einen kleinen Einblick, wie man eine MySQL-Datenbank synchronisieren kann. Alternativ können Sie die Skriptroute "Exportieren / Importieren" ausführen oder, wenn Sie tatsächlich MySQL verwenden, sich Replication und dessen Implementierung ansehen (dies ist eine Funktion von MySQL, die DropBox nicht verwendet).

Dachs
quelle
Ich verstehe nicht, wie Sie Dropbox zum Synchronisieren von Datenbanken verwenden würden.
Eric Wilson
Sie können einen regelmäßigen Datenbank-Dump / Restore in / aus einem Dropbox-Verzeichnis planen.
Badgerr
6
@badgerr Erwägen Sie, Ihre Antwort dahingehend zu erweitern, wie Dropbox in den verschiedenen vom OP erwähnten Szenarien verwendet werden kann.
Adam Lear
Das ist hässlich Ich würde viel lieber einen Script-Runner wie DbMaintain verwenden.
Eric Wilson
1
-1 aus dem Grund, den Anna erwähnt. Erweitern Sie Ihre Antwort und die Abstimmung wird rückgängig gemacht ;-)
fretje
7
  • Dropbox
  • Github
  • Firefox Sync für Lesezeichen / Verlauf / Firefox-Einstellungen
Talonx
quelle
1
+1 für eine direkte Antwort und für eine Dropbox, die ganz oben ist. Ungeachtet ihrer jüngsten PR-Probleme mit der Open Source-Community ist Dropbox für mich von unschätzbarem Wert.
Falmarri
3

Natürlich können Sie github für Ihren gesamten Code verwenden, einschließlich .bash_profile-Dateien und Bash-Skripten.

Der Hudson / Jenkins-CI-Server eignet sich für die Verwaltung mehrerer Umgebungen. In Verbindung mit DbMaintain können auch Ihre Datenbanken synchronisiert werden.

Mein Team synchronisiert mit dieser Kombination vier Pairing-Stationen, verschiedene Laptops sowie CI-, TEST- und QA-Umgebungen (mit Servern und eigenen Kopien der Datenbank).

Dies betrifft Windows-Computer, Mac-Laptops und Linux-Server und ist daher sehr flexibel.

Eric Wilson
quelle
2

Ich halte meine Punktedateien in Git, mit Zweigen für maschinenspezifische Einstellungen. Auf diese Weise kann ich schnell einen neuen Computer einrichten und Skripts freigeben und auf dem neuesten Stand halten.

Daenyth
quelle
1

Vielleicht müssen Sie einen Schritt zurücktreten und sich fragen, warum Sie so viele Computer benötigen. Es ist, als würde jemand fragen, wie er sein gesamtes Zeug in den 5 Autos, die er besitzt, unverändert lassen kann.

Ich würde vorschlagen, dass Sie sich fragen, was jeder Computer tut, was Ihr primärer Computer nicht tut, und es einfach dazu bringen, das zu tun.

Haben Sie einen guten Laptop in Betracht gezogen?

Wenn dies alles in Ihrem Haus ist, können Sie einen Server einrichten und all das Zeug dort aufbewahren. Dann haben Sie nur noch einen Rechner mit Daten zum Sichern.

Wenn es sich um Remotecomputer handelt, sollten Sie sich ein Linux-VPS zulegen und Ihre Remotecomputer dort aufbewahren. Verwenden Sie keine kostenlosen Online-Dienste wie Github, Dropbox usw., da diese zur falschen Zeit verschwinden können.

Verwenden Sie AWS nicht zum Speichern Ihrer Daten. bei 0,1 USD / Monat / GB sind das 100 USD / Monat / TB oder 1200 USD / Jahr / TB. Für dieses Geld können Sie rund 15 Western Digital 1 TB-Festplatten kaufen.

Wenn Sie ein Unternehmen führen und damit Geld verdienen, nutzen Sie den bestmöglichen Service. Um ehrlich zu sein, ist es schwierig, Festplatten zu schlagen, um viele Daten zu übertragen. Sogar die 32-GB-Micro-USB-Laufwerke haben die Größe eines Fingernagels und Sie können eine Menge Daten in ...

Da ist die Cloud, die Private Cloud. Vielleicht sollte es die Personal Cloud geben ...

Christopher Mahan
quelle
Danke für die Tipps. Ich habe 5 Computer, aber ich benutze nur 3 davon oft, und ich brauche die drei. 1 Ubuntu-Server zu Hause, 1 Thinkpad Ubuntu-Laptop (das Arbeitspferd) und 1 Macbook Pro für die iOS-Entwicklung
dan
0

Git, migriert von Subversion, wiederum migriert von CVS. fgit ( disclaimer : von mir) für pull push, statusund gc.

l0b0
quelle
0

Haben Sie darüber nachgedacht, dort eine Art Cloud-Infrastruktur zu schaffen? Scheint die einzige Möglichkeit zu sein, zu abstrahieren, von welcher Workstation der Dienst / die Datei / das Objekt stammt.

Hier ist ein Link zur Ubuntu Cloud .

Guiman
quelle
0

Ich benutze jetzt Wuala als Ersatz für Dropbox. Ein Problem ist die fehlende Ordnerüberwachung unter Linux. Grundsätzlich werden alle Dateien jede Minute durchsucht. Die nächste Version sollte das irgendwie beheben, so heißt es.

Die Echtzeitsynchronisation unter Linux ist problematisch, wenn Sie aufgrund der Art und Weise, wie inotify implementiert ist, über Zehntausende von Ordnern (z. B. Git-Repositorys) verfügen. Für jeden einzelnen Ordner muss eine "Uhr" vorhanden sein - siehe zum Beispiel https://stackoverflow.com/questions/535768/what-is-a-reasonable-amount-of-inotify-watches-with-linux

ert
quelle
Wuala ist jetzt tot: de.wikipedia.org/wiki/Wuala
Gwyneth Llewelyn