Synchronisieren von Ordnern, Konfigurationen, Programmen, lokalem Server und Datenbank auf zwei Debian-Computern

408
Iam Zesh

Ich verwende Debian sowohl auf einem Laptop als auch in einer virtuellen Maschine auf einem anderen Computer.

Ich möchte in der Lage sein, diese beiden Systeme auf beide Arten zu synchronisieren, damit ich es kann

  • einige Arbeit auf der VM erledigen, dann zum Laptop wechseln, synchronisieren und von dort weiterarbeiten,
  • komm zurück auf die VM, synchronisiere und arbeite weiter ...

Nach einigem Googlen sieht es so aus, als würde Unison unter anderem wegen seiner 2-Wege-Synchronisationsfunktion das benötigte Werkzeug sein.

Was ich mich jetzt frage, ist, was / was nicht und wie man die beiden Maschinen synchronisiert.

Ich habe herausgefunden, dass es in meinem Fall im Wesentlichen drei Hauptpunkte gibt, die zu berücksichtigen sind (ich habe vielleicht etwas vergessen):

  • die meisten (alle?) Inhalte des Home-Ordners synchronisieren, da ich von dort aus die Dateien benötige, an denen ich arbeite, die Bash-Aliase, die Konfigurationseinstellungen der meisten Programme (die ich auf beiden Computern gleich haben möchte), meine selbst gebackenen Skripte usw.
  • Synchronisieren des Inhalts der lokalen Apache-Server- und MySQL-Datenbanken, die dort ausgeführt werden, um einige von mir erstellte Websites lokal zu testen (um lokal auf jedem Computer separat / unabhängig testen zu können)
  • Synchronisieren der installierten Programme über diese Systeme hinweg.

Was den Heimatordner angeht, dachte ich zunächst, es wäre eine gute Idee, einfach den gesamten Heimatordner zu synchronisieren. Bei näherer Betrachtung sieht es jedoch so aus, als wären einige versteckte Dateien / Verzeichnisse auf der VM nicht auf dem Laptop vorhanden (z. B. .vboxclient-clipboard.pid, .vboxclient-display.pid ...) und umgekehrt .

Ich wunderte mich auch über einige versteckte Dateien, die für jeden Rechner spezifisch zu sein scheinen (.cache, .dbus, .gconf).

Daher habe ich mich gefragt, ob es allgemeine Regeln gibt (einige bestimmte Dateierweiterungen oder bekannte Dateien / Ordner ausschließen), die ich anwenden könnte, um sicherzustellen, dass ich nicht einzelne systemspezifische Dateien kopiere und wirklich bei dem halte, was ich brauche und was allgemein üblich ist auf den 2 Rechnern (meine Daten und Konfigurationsdateien, z. B. die benutzerdefinierte Liste der Server für filezilla).

Dann dachte ich über die Synchronisierung des lokalen Servers und der MySQL-Datenbank

  • Ich könnte auch den / var / www / -Ordner zwischen Computern mit Unison synchronisieren (obwohl es keine gute Idee ist)
  • Ich müsste ein Skript schreiben, um zu dumpen, zu vergleichen und wenn nötig die mysql-Datenbanken jedes Mal zu ersetzen (klingt wirklich uneffektiv)

Was Programme angeht, sieht es so aus, als müsste ich manuell diejenigen installieren, die auf dem einen installiert sind, aber nicht auf dem anderen (dies sollte jedoch kein Problem sein, da ich dies nur beim Einrichten der Maschinen tun muss und selten neue Programme installiere danach).

Darüber hinaus denke ich darüber nach, Debian auf jedem dieser beiden Rechner neu zu installieren. Ich habe mich auch gefragt, ob es während der Installation von Debian wichtig wäre, wenn ich auf jedem Rechner andere Einstellungen für Folgendes auswählen würde:

  • Festplattenverschlüsselung: Grundsätzlich möchte ich die Festplatte mit LVM auf dem Laptop verschlüsseln, aber auf der VM brauche ich dies nicht.
  • Hostname: Es ist nicht kritisch, da ich auf beiden Rechnern denselben Hostnamen verwenden kann, aber ich habe mich gefragt, ob ich zwei verschiedene haben könnte (zB debianlaptop und debianvm).
  • Benutzerkennwörter: Ich würde auf beiden Rechnern dieselben Benutzernamen verwenden, aber andere Kennwörter (auch für root) wären nett
  • Softwareauswahl: Ich würde sie definitiv auf beiden Maschinen installieren: "Debian Desktop Environment" (mit xfce als dektop-Manager zu Beginn der Installation), "Webserver", "Standard-Systemprogramme", aber ich frage mich, ob es wirklich so ist zur Installation von "Laptop" auf der VM und wenn dies Auswirkungen auf die Synchronisierung hat.

Bei all dem ist es mir ein wichtiges Anliegen, die besten Entscheidungen zu treffen

  • Ich kann auf beinahe automatische Weise zwischen den beiden synchronisieren, wobei weniger manuelle Eingriffe möglich sind (im Grunde läuft der Unisono auf der Maschine, ich beginne zu arbeiten und kümmere mich schließlich um die Programminstallation und die Datenbanksynchronisation)
  • Ich synchronisiere nur das, was benötigt wird, und vermeide Dateien / Ordner / Optionen, die systemspezifisch sind oder systemspezifische Einstellungen überschreiben könnten, was zu unerwünschten Konsequenzen führen kann ...
2

1 Antwort auf die Frage

0
Mike Pierce

Bei der Synchronisierung Ihres Heimatverzeichnisses mit Unison und dem Ausschluss bestimmter Systemverzeichnisse gibt es zwei Möglichkeiten. Die erste besteht darin, alle Elemente, die Sie synchronisieren möchten, aufzulisten und alle systemspezifischen Verzeichnisse wegzulassen:

# unison-profile.prf root = /home/user root = ssh://user@VM//home/user path = Documents path = .bashrc . . . 

Die andere Option wäre, alles zu synchronisieren und dann die Liste der Pfade anzugeben, die Sie ignorieren möchten:

# unison-profile.prf root = /home/user root = ssh://user@VM//home/user path = Name {.*,*} ignore = Path .cache ignore = Path .dbus . . . 

Beachten Sie, dass wir path = Name {.*,*}eher path = Name *alle Dateien und Verzeichnisse mit Namen, die mit einem Punkt beginnen, synchronisieren müssen.