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 upgradeVerwenden Sie als Nächstes den einfachen Befehl apt to, um das Tool zu installieren.
sudo apt-get install unison -yWenn 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-gtkHINWEIS: 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.
- 192.168.0.200 - Server1
- 192.168.0.201 - Server2
Der erste Schritt besteht darin, einen privaten und öffentlichen Schlüssel auf dem Remote-Server zu erstellen1.
ssh-keygen -t rsaGenerieren 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.201Nachdem 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 /dir1Erstellen Sie auf server2 ein Verzeichnis wie oben
mkdir -p /dir2Wie 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 /dir1Wenn 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//dir2Beim 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.prfFügen Sie in der Datei die folgenden Zeilen hinzu:
auto=wahrBatch=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/unisoncronBeginnen 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/unisoncronBearbeiten Sie nun Ihre Cronjob-Datei mit crontab:
sudo crontab -eWenn 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/nullSie 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:
- https://www.cis.upenn.edu/~bcpierce/unison/
- https://www.cis.upenn.edu/~bcpierce/unison/download/releases/stable/unison-manual.html