Debian

So verwenden Sie Unison zum Synchronisieren von Dateien zwischen Servern

So verwenden Sie Unison zum Synchronisieren von Dateien zwischen Servern
Dieses Tutorial zeigt Ihnen, wie Sie das Unison File Synchronisierungstool auf Debian-Systemen einrichten und verwenden. Mit Unison können Sie Dateien zwischen zwei verschiedenen Festplatten oder Verzeichnissen im selben System oder zwei anderen Systemen über das Netzwerk synchronisieren.

Was ist Unison?

Die von Benjamin C Pierce unter der GPL-Lizenz entwickelte Unison-Technologie ermöglicht es Benutzern, zwei einzelne Dateiinstanzen auf demselben System, aber unterschiedlichen Festplatten oder zwei anderen Systemen zu synchronisieren.

Unison ermöglicht es Ihnen, eine aktualisierte und identische Version derselben Datei oder desselben Verzeichnisses zu behalten. Es ist in einer Vielzahl von Kontexten einsetzbar, z. B. SSH, und ermöglicht die sichere Übertragung von Daten zwischen Geräten oder Verzeichnissen.

Das Unison-Tool ist plattformübergreifend und ermöglicht es Benutzern, Dateien und Verzeichnisse zwischen Systemen zu synchronisieren, auf denen dasselbe oder verschiedene Betriebssysteme ausgeführt werden. Sie können beispielsweise Dateien von einem Linux-System mit einem BSD-System synchronisieren. Aufgrund seiner Sicherheitsfunktionen synchronisiert Unison Dateien und Verzeichnisse und wendet Eigentums- und Berechtigungsrechte auf beide Systeme an.

Das Unison-Tool wurde unter Berücksichtigung der Sicherheit entwickelt und kann Fehler überstehen, bei denen es zu Unterbrechungen zwischen Synchronisierungspunkten kommt. Wenn Unison Datei- und Verzeichniskonflikte erkennt, meldet es die bestehenden Konflikte und ermöglicht den Benutzern auszuwählen, welche Version der Dateien angewendet werden soll.

Unison kann mit langsamen Netzwerken arbeiten oder diese unterstützen, was es zu einem sehr effizienten Tool für die Bandbreitennutzung macht. Es synchronisiert nur Teile und Verzeichnisse, die sich geändert haben, verhindert so eine hohe Belastung und aktualisiert den Synchronisierungsprozess sehr einfach und schnell.

Trotz seines primären Verwendungskontextes ist Unison ein leistungsstarkes Werkzeug, das modifiziert werden kann, um eine breite Palette von Anwendungsfällen zu erstellen.

In diesem Tutorial wird erläutert, wie Sie das Unison File Synchronization System unter Debian 10 installieren und einrichten.

So installieren Sie Unison auf Debian 10

Unison ist ein beliebtes Werkzeug; Aus diesem Grund ist es in offiziellen Repositorys der wichtigsten Linux-Distributionen verfügbar.

Um die Befehlszeilenversion von Unison unter Debian zu installieren, beginnen Sie mit der Aktualisierung des Systems:

sudo apt-get update && sudo apt-get upgrade

Verwenden Sie als Nächstes den einfachen Befehl apt to, um das Tool zu installieren.

sudo apt-get install unison -y

Wenn Sie eine Desktop-Umgebung auf Ihrem System installiert haben und eine GUI-Version des Tools bevorzugen, installieren Sie unison-gtk mit dem folgenden Befehl:

sudo apt-get install unison-gtk

HINWEIS: Stellen Sie sicher, dass Sie Unison auf beiden Versionen der Systeme installieren, auf denen Sie Dateien synchronisieren möchten. Aus Kompatibilitätsgründen und um die Wahrscheinlichkeit von Fehlern zu minimieren, ist es besser, dieselbe Version von Unison in beiden Systemen zu verwenden.

So synchronisieren Sie Dateien mit Unison

Unison bietet uns Möglichkeiten zum Synchronisieren von Dateien und Verzeichnissen zwischen lokalen Maschinen und entfernten Maschinen über direkte Socket-Verbindungen und SSH. Da wir zwischen zwei Debian-Servern synchronisieren, überspringen wir die lokale Maschinensynchronisierung.

Unison Remote und Remote Sync über SSH

Um Dateien und Verzeichnisse zwischen Remote-Rechnern zu synchronisieren, müssen Sie Unison auf beiden Systemen installiert haben und über SSH-Zugriff auf beide Systeme und ihre IP-Adressen verfügen.

Sie können auch Ihren lokalen Computer als einen Server und das Remote-Gerät als den anderen Server verwenden.

Der erste Schritt besteht darin, einen privaten und öffentlichen Schlüssel auf dem Remote-Server zu erstellen1.

ssh-keygen -t rsa
Generieren eines öffentlichen/privaten rsa-Schlüsselpaars.
Geben Sie die Datei ein, in der der Schlüssel gespeichert werden soll (/home/csalem/.ssh/id_rsa):
Verzeichnis '/home/csalem/ erstellt.ssh'.
Passphrase eingeben (leer für keine Passphrase):
Geben Sie dieselbe Passphrase erneut ein:
Ihre Identifikation wurde in /home/csalem/ gespeichert.ssh/id_rsa.
Ihr öffentlicher Schlüssel wurde in /home/csalem/ gespeichert.ssh/id_rsa.Kneipe.
Der wichtigste Fingerabdruck ist:
SHA256:4p5YuEBEa5lrINzqPgwHRVhSS0TNlIIl70A0q2MFcS8 csalem@Debian-PC
Das zufällige Kunstbild des Schlüssels ist:
+---[RSA 2048]----+
|+/@=… |
|=*O== |
|++OE . |
|+*o… |
|o+= . S |
|++. Ö . |
|oo… o |
|.Ö . = . |
|… o o |
+----[SHA256]-----+

Überspringen Sie schnell den Schlüsselgenerierungsvorgang und speichern Sie die Datei. Bitte fügen Sie keine Passphrase hinzu, da dies die unüberwachte Synchronisierung zwischen den Servern behindern kann.

Kopieren Sie als Nächstes den Schlüssel von server1 nach server2 mit dem Befehl:

ssh-copy-id 192.168.0.201

Nachdem Sie nun auf beiden Systemen SSH eingerichtet haben, können Sie Unison starten, um Dateien und Verzeichnisse zu synchronisieren.

Lassen Sie uns die Verwendung von Unison auf beiden Servern testen, indem wir das Verzeichnis erstellen, das wir auf Server1 synchronisieren werden:

mkdir -p /dir1

Erstellen Sie auf server2 ein Verzeichnis wie oben

mkdir -p /dir2

Wie bereits erwähnt, respektiert Unison die Benutzerberechtigungen. Daher ist es am besten, die Berechtigungen und den Besitz in beiden Verzeichnissen zu ändern, um sicherzustellen, dass beide Verzeichnisse über Lese- und Schreibrechte verfügen.

Als nächstes fügen Sie alle Daten hinzu, die Sie zwischen den Servern in dir1 synchronisieren möchten. Fügen Sie beispielsweise ein paar Zip-Dateien hinzu.

sudo mv ~/Dokumente.zip /dir1

Wenn wir die Dateien im richtigen Verzeichnis synchronisieren möchten, führen Sie den unison-Befehl aus, um von Server eins zu synchronisieren:

unisono /dir1 ssh://192.168.0.201//dir2

Beim ersten Start von Unison erhalten Sie eine Warnung, dass der Synchronisierungsvorgang eine Weile dauern kann. Wenn Sie große Dateien in den Verzeichnissen haben, kann dies eine Weile dauern, da wir es jedoch nur zu Testzwecken verwenden, sollte es relativ schnell gehen.

Drücken Sie die Eingabetaste, um den Synchronisierungsprozess zu starten. Sobald der Synchronisierungsvorgang abgeschlossen ist, gehen Sie zu server2, navigieren Sie zu dir2 und listen Sie den Inhalt des Verzeichnisses wie folgt auf:

cd /dir2 && ls -la
-rw-r--r-- 1 root root 436 Jan 5 12:57 Dokumente.Postleitzahl

Ändern der Unison-Konfiguration

In den meisten Fällen möchten wir Dateien zwischen diesen Servern nicht interaktiv synchronisieren, da sich der Prozess wiederholt und ineffizient ist. Wir können die Unison-Konfigurationsdatei bearbeiten, um automatische Synchronisierungsdateien zu ermöglichen.

Verwenden Sie den folgenden Befehl, um die Standardkonfigurationsdatei zu bearbeiten:

sudo vi ~/.unisono/standard.prf

Fügen Sie in der Datei die folgenden Zeilen hinzu:

auto=wahr
Batch=wahr

Die obigen Zeilen deaktivieren Eingabeaufforderungen beim Synchronisieren von Dateien und automatisieren den Vorgang.

Unison Cronjob einrichten

Sicher ist, dass Programmierer sehr abgeneigt sind, Dinge manuell zu erledigen, insbesondere wenn es möglich ist, zu automatisieren, was hier der Fall ist. Wir können einen Cronjob einrichten, damit Unison automatisch eine Synchronisierung durchführt.

Erstellen Sie in server1 ein einfaches Bash-Skript zum Ausführen des unison-Befehls als:

sudo touch /usr/bin/unisoncron && sudo vi /usr/bin/unisoncron

Beginnen Sie in der Datei mit einem Shebang und fügen Sie den Befehl unison sync hinzu:

#!/bin/bash/
unisono /dir1 ssh://192.168.0.201//dir2

Geben Sie dem Skript wie gewohnt die Ausführungsberechtigungen:

sudo chmod 755 /usr/bin/unisoncron

Bearbeiten Sie nun Ihre Cronjob-Datei mit crontab:

sudo crontab -e

Wenn Sie Crontab zum ersten Mal bearbeiten - ich hoffe, es ist nicht - wählen Sie Ihren Editor und geben Sie die folgende Zeile ein, um alle 1 Stunde mit Unison zu synchronisieren:

*/60 * * * * /usr/bin/unisoncron &> /dev/null

Sie können die Crontab auch so einrichten, dass sie zu bestimmten Tageszeiten ausgeführt wird. Sie müssen auch kein Skript verwenden und können einen Rohbefehl in der crontab . verwenden.

Fazit

Dieses Tutorial zeigte Ihnen, wie Sie Unison auf einem Debian-System für die Synchronisation von Dateien und Verzeichnissen installieren und einrichten setup.

Obwohl diese Kurzanleitung Ihnen den Einstieg erleichtern kann, können Sie mehr erfahren, indem Sie die Manpages (Handbuchseiten) von Unison oder die offizielle Dokumentation mit der unten bereitgestellten Ressource verwenden:

So verwenden Sie AutoKey zur Automatisierung von Linux-Spielen
AutoKey ist ein Desktop-Automatisierungsdienstprogramm für Linux und X11, programmiert in Python 3, GTK und Qt. Mithilfe der Skript- und MACRO-Funktio...
So zeigen Sie den FPS-Zähler in Linux-Spielen an
Linux-Gaming bekam einen großen Schub, als Valve 2012 die Linux-Unterstützung für den Steam-Client und seine Spiele ankündigte. Seitdem haben viele AA...
Herunterladen und Spielen von Sid Meier's Civilization VI unter Linux and
Einführung in das Spiel Civilization 6 ist eine moderne Version des klassischen Konzepts, das in der Reihe der Age of Empires-Spiele eingeführt wurde....