Halten Sie Konfigurationsdateien über mehrere PCs hinweg synchron

15

Ich habe ein paar verschiedene Linux - Maschinen und viele Konfigurationsdateien (und Ordner) auf jedem.

Beispielsweise:

~/.ssh/config
~/.config/openbox/rc.xml
~/.config/openbox/autostart.sh
~/.scripts/ ( folder )
~/.bashrc
...etc

Gibt es eine einfache und elegante Methode, um diese Dateien zwischen meinen Computern zu synchronisieren (einer hat keinen Internetzugang) ?

Außerdem benötigen einige Dateien einen fortgeschritteneren Synchronisierungsprozess, da sie sich geringfügig unterscheiden müssen. Zum Beispiel:

Meine Desktop-Tastatur verfügt über eine Reihe von Hotkeys, auf meinem Laptop sind fast keine vorhanden. Ich XF86Mailöffne Thunderbird auf meinem Desktop, aber Meta+ Mauf meinem Laptop.

Mein Heim-Desktop und mein Arbeits-Desktop sind eher auf mehrere Benutzer ausgerichtet, wobei mein Laptop nur für mich bestimmt ist. Auf meinem Laptop behalte ich die 'rc.xml'-Datei für openbox bei, /etc/xdg/openbox/rc.xmlaber auf den Desktops bei~/.config/openbox/rc.xml

Stefan
quelle

Antworten:

10

Behalten Sie die Dateien unter Versionskontrolle. Dies hat mehrere Vorteile, einschließlich der Vereinfachung der Synchronisierung von Dateien (Festschreiben auf einem Computer, Aktualisieren auf den anderen Computern) und der Aufbewahrung eines Änderungsprotokolls (sodass Sie leicht herausfinden können, was ein im letzten Monat funktionierendes Programm kaputt gemacht hat).

Ich verwende CVS und synchronisiere die Repositorys mit Unison oder Sneakernet, aber das liegt daran, dass ich dies seit einer Zeit vor der weit verbreiteten verteilten Versionskontrolle getan habe. Jeder, der jetzt anfängt, sollte ein geeignetes verteiltes Tool zur Versionskontrolle verwenden, z. B. Basar, Darcs, Git, Quecksilber, ...

Das Verwalten von Dateien, die sich von Computer zu Computer unterscheiden müssen, ist immer etwas mühsam. Wenn die Konfigurationssprache Bedingungen zulässt, verwenden Sie diese. Andernfalls können Sie die Konfigurationsdatei mithilfe eines Include-Mechanismus in einen maschinenabhängigen Teil und einen gemeinsam genutzten Teil aufteilen. Bewahren Sie alle maschinenabhängigen Teile in einem separaten Verzeichnis auf, auf ~/.local/NAME/das immer durch einen symbolischen Link verwiesen wird ( ~/.here-> local/NAMEauf jeder Maschine). Ich habe einige Dateien, die von einem Skript im gemeinsam genutzten Teil aus Parametern generiert werden, die im maschinenspezifischen Teil gespeichert sind. Dies schließt das indirekte Ändern dieser Dateien über eine GUI-Konfigurationsschnittstelle aus. Vermeiden Sie es, Dinge zu konfigurieren /etc, da es schwieriger ist, zwischen Maschinen zu synchronisieren.

Gilles 'SO - hör auf böse zu sein'
quelle
Ich benutze gitfür diesen Zweck. Mein Repo für ~/.etcIch habe auch ein ~/.usrund ein ~/.varIch wünschte, diese Verzeichnisse wären Standard, so dass KDE aufhören würde, alle tmp / var / config / etc-Dateien unter .kde zu werfen. so schwer zu wissen, wo was ich will, ist in meinem Heimatverzeichnis.
Xenoterracide
5

Ich bin mit der Antwort der Versionskontrolle einverstanden , aber eine andere Methode, mit der ich in letzter Zeit experimentiert habe, ist Dropbox . Es handelt sich im Wesentlichen um ein Versionskontrollsystem, das automatisch zwischen all Ihren Computern synchronisiert. Wenn Sie also eine Datei auf einem Computer bearbeiten, werden die Änderungen in ein paar Sekunden auf Ihren anderen Computern angezeigt, ohne dass Sie sich auf den ersteren festlegen und auf den aktualisieren müssen letztere.

Ihr kostenloser Basisplan ist 2 GB, daher verwende ich ihn, um meine Konfigurationsdateien und Chat-Protokolle zu versionieren

Michael Mrozek
quelle
Der größte Vorteil, den ich hier sehe, ist, dass die Einrichtung viel einfacher ist.
Ashesh Kumar Singh
3

Puppet und Cfengine sind zwei gute Werkzeuge zum Synchronisieren von Dateien (und vielem mehr ..)

rkthkr
quelle
Es gibt auch Koch, aber diese Tools sind wirklich für die Verwaltung einer großen Anzahl von Maschinen, wahrscheinlich Overkill für 2 oder 3 Systeme
Xenoterracide
1

Heute kann man mit Sparkleshare das Beste aus den ersten (dvcs) und zweiten (dropbox) Antworten herausholen , was eine Dropbox-ähnliche Benutzererfahrung mit git-basiertem Speicher hinter den Kulissen bietet.

Emjayess
quelle