Unison: Einrichten und Automatisieren der bidirektionalen Synchronisierung von Verzeichnissen auf zwei Servern


Getty Images / iStockphoto Das

Problem der Synchronisierung von Verzeichnissen auf zwei Servern mit der Linux-Betriebssystemfamilie an Bord kann einfacher gelöst werden, wenn Sie spezielle Tools verwenden. Mal sehen, wie das mit Unison geht .

Möglicherweise haben Sie mehrere Server und stehen vor der Aufgabe, bestimmte Verzeichnisse auf diesen Servern zu synchronisieren. Beispielsweise müssen Sie das Verzeichnis / data auf jedem dieser Server synchronisieren , damit einige Anwendungen auf relevante Informationen zugreifen können. Oder Sie müssen die Daten nur regelmäßig synchron von einem Server auf einen anderen sichern.

Unison ähnelt dem Dienstprogramm rsync synchronization , unterstützt jedoch im Gegensatz dazu das bidirektionale Synchronisieren. Das heißt, Sie können zwei Kopien von Dateien synchronisieren und jede Kopie abhängig von den vorgenommenen Änderungen aktualisieren.

Bei Verwendung von Unison auf Servern ist es wünschenswert, Pakete wie openssh-server und ssh installiert zu haben, da die Synchronisierung aus Sicherheitsgründen am besten über das SSH-Protokoll erfolgt. Wenn Sie jedoch von der Sicherheit Ihres Netzwerks überzeugt sind (der Server kann beispielsweise die SSH-Authentifizierung ohne Kennwort verwenden), können Sie sich nicht darum kümmern.

Was wird sonst noch benötigt, um Unison zu benutzen?


Ich werde den gesamten Prozess am Beispiel von zwei Ubuntu-Servern zeigen (beide 18.04). Sie können Unison installieren und mit anderen Distributionen verwenden, müssen dann aber den Installationsbefehl ändern, andernfalls kann Unison über Standard-Repositorys installiert werden (Ihr Benutzer muss natürlich über Sudo-Rechte verfügen).

Ich werde diese Server verwenden:

  • server1 - 192.168.1.6
  • server2 - 192.168.1.19

So installieren Sie Unison


Das erste, worauf Sie achten müssen, ist die Installation von Unison. Dies sollte auf beiden Servern erfolgen. Gehen Sie zu beiden Servern und geben Sie den folgenden Befehl ein:

sudo apt-get install unison unison-all -y

Warten Sie, bis die Unison-Installation abgeschlossen ist, und fahren Sie fort.

So generieren und kopieren Sie einen SSH-Schlüssel


Zunächst generieren wir den SSH-Schlüssel nur für Server1 . Verwenden Sie dazu den folgenden Befehl:

ssh-keygen -t rsa

Wenn Sie aufgefordert werden, ein Passwort einzugeben, drücken Sie einfach die EINGABETASTE.
Wenn der Schlüssel generiert wird, kopieren Sie ihn mit dem folgenden Befehl auf Server2 :

ssh-copy-id 192.168.1.19

Sobald der Schlüssel kopiert wurde, können Sie direkt zum Geschäft übergehen.

Wie benutzt man Unison?


Erstellen wir zu Testzwecken ein Testverzeichnis für jeden Server. Befehl für Server1 :

sudo mkdir -p /data1

Für Server2 :

sudo mkdir -p /data2

Als nächstes müssen Sie auf beiden Servern den Namen des Besitzers des erstellten Verzeichnisses ändern, da Unison sonst dort nichts schreiben kann. Geben Sie als Eigentümer den Benutzer an, der den Unison-Befehl ausführen soll:

sudo chown -R $USER.$USER /data2

Machen Sie dasselbe für Server1 :

sudo chown -R $USER.$USER /data1

Legen Sie einige Testdateien in / data1 ab :

touch /data1/{test1,test2,test3}

Wir synchronisieren unsere Verzeichnisse mit dem folgenden Befehl (indem wir ihn auf Server1 ausführen ):

unison /data1 ssh://192.168.1.19//data2

Da Sie zum ersten Mal versuchen, diese Stammverzeichnisse zu synchronisieren, erhalten Sie eine Warnung, dass die Synchronisierung einige Zeit dauern kann (in unserem Fall ist dies jedoch nicht der Fall, da dem Verzeichnis nur drei Testdateien des Mindestvolumes hinzugefügt wurden). Wenn es sich um ein Backup in der Produktion handelt, kann der erste Start einige Zeit in Anspruch nehmen.

Also trink das nächste Mal Tee. Drücken Sie in der Zwischenzeit die Eingabetaste, um den Vorgang zu starten. Anschließend werden Sie aufgefordert, die Synchronisierung jeder Datei zu bestätigen. Wenn Sie fertig sind, geben Sie 'y' ein, um fortzufahren.

Da wir nur drei Testdateien synchronisieren, geschieht dies sehr schnell und Sie kehren zur Bash-Shell zurück. Um sicherzustellen, dass die Dateien synchronisiert sind, gehen Sie zu Server2und geben Sie den Befehl ein:

ls /data2

Außerdem meldet das System, dass sich unsere Dateien test1, test2 und test3 im Verzeichnis / data2 befinden : Es ist



uns gelungen: Unison hat beide Verzeichnisse synchronisiert.

So starten Sie Unison ohne Benutzerinteraktion


Ich denke, Sie möchten nicht jedes Mal, wenn Sie Unison starten, die Synchronisierung jeder Verzeichnisdatei ständig bestätigen. Dies ist besonders ärgerlich, wenn Sie Verzeichnisse mit einer großen Anzahl von Dateien synchronisieren. Daher ist eine Automatisierung erforderlich. Gehen Sie zu Server1 und geben Sie den folgenden Befehl ein:

nano ~/.unison/default.prf

Wenn die Konfigurationsdatei zur Bearbeitung geöffnet wird, fügen Sie zwei Zeilen hinzu:

auto=true
batch=true

Speichern und schließen Sie dann die Datei.
Jetzt wird Unison Sie nicht mit Kleinigkeiten belästigen. Aber das ist nicht alles.

So erstellen Sie eine Aufgabe für Cron Scheduler


Ich denke, Sie möchten die Synchronisierung kaum manuell starten, da Sie irgendwo einen Fehler machen oder beispielsweise die Änderung der Verzeichnisstruktur auf den Servern nicht berücksichtigen können. Um die Automatisierung zu konfigurieren, müssen Sie einen Cron-Job für Server1 erstellen .
Erstellen wir ein Skript, um die Synchronisierung zu starten:

sudo nano /usr/local/bin/unisonsync

Folgendes sollte zu dieser Datei hinzugefügt werden:

#!/bin/bash/
unison /data1 ssh://192.168.1.19//data2

Als nächstes müssen Sie dem Skript das Recht zur Ausführung geben:

sudo chmod ugo+x /usr/local/bin/unisonsync

Erstellen Sie einen Job für Cron mit dem folgenden Befehl:

crontab -e

Nach diesem Typ:

*/5 * * * * /usr/local/bin/unisonsync &> /dev/null

Jetzt startet die Synchronisation automatisch alle 5 Minuten.

Ich habe gezeigt, dass Unison es einfach macht, Verzeichnisse auf zwei Linux-Servern zu synchronisieren. Sie können dies selbst überprüfen , indem Sie Dateien in den entsprechenden Test Verzeichnisse Hinzufügen / data1 und / DATA2 auf beiden Servern. Nachdem Sie sichergestellt haben, dass die Synchronisierung funktioniert, können Sie sie im Kampfmodus auf Produktionsservern verwenden.



Als Werbung


VDSina ist immer gerne bereit, zuverlässige Server für alle Aufgaben anzubieten. Sie haben Zugriff auf eine große Auswahl an Betriebssystemen für die automatische Installation. Sie können jedes Betriebssystem von Ihrem eigenen Image aus installieren und ein lokales Hochgeschwindigkeitsnetzwerk zwischen Servern am selben Standort verwenden.


All Articles