Mit Unison lassen sich Verzeichnisse auf zwei Systemen einfach und zuverlässig bidirektional synchronisieren – ein großer Unterschied zu rsync, das normalerweise nur in eine Richtung synchronisiert.

Teil 1 – Grundlagen von Unison

I. Was macht Unison besonders?

Unison vergleicht zwei Verzeichnisse und erkennt Veränderungen sowohl auf dem lokalen als auch auf dem entfernten System. So können etwa ein Musikordner auf dem Laptop und einer auf dem Desktop abgeglichen werden – neue Dateien in beiden Ordnern werden übernommen, sodass nach dem Synchronisieren beide Systeme den gleichen Stand haben. Unison arbeitet dabei ressourcenschonend, denn es überträgt nur die Änderungen innerhalb von Dateien, ähnlich wie rsync.

II. Unterschiede zu rsync

Synchronisation:
Während rsync Dateien von A nach B kopiert (und dabei A als „Master“ sieht), synchronisiert Unison Dateien in beide Richtungen und erkennt, wo neue, gelöschte oder geänderte Dateien sind.

Löschen und Hinzufügen:
Wenn bei rsync die Option –delete benutzt wird, gilt die Quelle als „Master“: Dateien, die nur im Ziel vorhanden sind, werden gelöscht. Bei Unison kann auf beiden Seiten frei gearbeitet werden – nach dem Sync sind beide Ordner identisch, egal wo etwas geändert wurde.

Konflikte:
Unison macht den Benutzer auf Konflikte aufmerksam, etwa wenn die gleiche Datei auf beiden Seiten unterschiedlich verändert wurde – dann entscheidet man „händisch“, welche Version erhalten bleibt.

III. Unison installieren

Mit folgenden Befehl:

sudo apt install unison

wird Unison auf Debian-basierenden Distributionen installiert.

IV. Synchronisationsordner festlegen

Wählen Sie zwei Ordner aus, die synchron bleiben sollen, z.B.:

/home/user/ordner1

/media/user/usb/ordner2

Der erste Ordner kann auf dem lokalen PC sein, der zweite z.B. auf einem USB-Laufwerk.

V. Profil anlegen

Unison verwendet Profile zur Organisation der zu synchronisierenden Ordner. Dafür wird eine kleine Datei angelegt, z.B. ~/.unison/usb-sync.prf, mit folgendem Inhalt:

root = /home/user/Dokumente/ordner1
root = /media/user/USB/ordner2

Damit wird Unison mitgeteilt, zwischen welchen beiden Ordnern synchronisiert werden soll.

VI. Synchronisation starten

Das Kommando im Terminal:

unison usb-sync

vergleicht nun beide Ordner und zeigt an, welche Dateien neu sind, geändert oder gelöscht wurden. In ordner1 befindet sich eine neue Datei muster_2025.odt. Diese kann nun in ordner2 synchronisiert werden. Wir stimmen dem zu mit der Eingabe von

f

Mit der Eingabe von

y

bestätigen wir den Prozess.

Nun erhalten wir die Bestätigung der erfolgreichen Synchronisation

Wichtiger Hinweis

Unison benötigt zur korrekten Funktion Zugriff zu Dateiberechtigungen. Externe Laufwerke sollten dazu im Dateiformat NTFS oder Ext4 formatiert sein. Ältere Formate wie FAT32 bzw. exFAT sind hierzu nicht geeignet.

Teil 2 – Unison per Skript und Starter auslösen

Wie rsync lässt sich auch Unison per Skript und Starter für regelmäßige Synchronisationen auslösen.

Mit nachfolgenden Bash-Skript, startet Unison die Synchronisation – nach Abschluss bleibt so lange ein Bestätigungsfenster (per Zenity) geöffnet, bis per Mausklick bestätigt wird. Erst dann wird das Terminalfenster beendet. Voraussetzung ist ein installiertes Zenity per:

sudo apt install zenity

Öffnen Sie einen Texteditor wie z.B. Mousepad unter Xfce und fügen folgenden Inhalt ein:

#!/bin/bash

# Name und Pfade für das Unison-Profil
PROFIL="usb-sync"
PROFILPFAD="$HOME/.unison/$PROFIL.prf"

# Die synchronisierenden Verzeichnisse (anpassen ggf.!)
ORDNER1="$HOME/user/dokumente/ordner1"
ORDNER2="/media/$USER/usb/ordner2"

# Profildatei automatisch anlegen, falls noch nicht vorhanden
if [ ! -f "$PROFILPFAD" ]; then
  mkdir -p "$HOME/.unison"
  cat << EOF > "$PROFILPFAD"
root = $ORDNER1
root = $ORDNER2
EOF
fi

# Unison-Synchronisation starten (keine speziellen Rechte erforderlich)
unison "$PROFIL"

# Nach Mausklick schließen (Zenity-Dialog)
zenity --info --title="Synchronisation beendet" --text="Die Synchronisation wurde erfolgreich ausgeführt.\nMit Klick auf OK wird das Terminal geschlossen."

Die Pfade bitte entsprechend Ihrer Gegebenheiten anpassen.

Speichern Sie das Skript mit der Bezeichnung

synchronisieren.sh

in Ihr home-Verzeichnis.

Mit weiteren Befehl:

chmod +x /home/user/synchronisieren.sh

erhält das Skript Ausführungsrechte.

Starter zum Synchronisieren erstellen

Nun erstellen wir noch einen Anwendungs-Starter – hier i.B. unter Xfce – per Rechtsklick in die Leiste -> Leisteneinstellungen -> Objekte -> Hinzufügen -> Starter -> Hinzufügen…

Konfigurieren Sie den Starter wie folgt…

Im Feld Befehl fügen Sie

xfce4-terminal -e "/home/user/synchronisieren.sh"

ein und klicken auf Speichern.

Den Starter positionieren Sie in der Leiste an die gewünschte Stelle. Ein Klick darauf startet die Synchronisation, wie im Teil 1 beschrieben. Wurden zwischenzeitlich keine Daten verändert, erhalten Sie folgende Meldung…

Ein Klick auf OK beendet das Terminal.

Sollten zwischenzeitlich Dateien hinzugefügt oder gelöscht worden sein, könnte es so aussehen wie hier im Beispiel. In ordner1 befindet sich eine neue Datei, die nach ordner2 synchronisiert werden kann. Geben Sie dazu einfach auf der Tastatur ein

f

für follow / folgen ein…

und bestätigen mit Eingabe von

y

Es erfolgt die Synchronisierung mit ordner2 – nach erfolgreichen Abschluss beenden Sie das Terminal mit Klick auf OK.

Fazit

Das ist nur ein einfaches Beispiel zur Synchronisation mit Unison per Skript. Es lassen sich damit sehr viel umfangreichere Lösungen verwirklichen.
Beachten Sie auch hier den obigen Hinweis bzgl. externer Laufwerke und deren Formatierung.

Categories:

Schreibe einen Kommentar

3 Reaktionen

  1. The easiest and quickest way is to install pre-built binaries available at many
    package repositories. The caveat: some repositories are slow to update and
    often include a very old version of Unison.

    Alternatively, some pre-built binaries are made available at
    https://github.com/bcpierce00/unison/releases for macOS, Linux and Windows.
    No specific installation is needed, just unpack the files at a location of your
    choosing.

    • Hallo @linuxopa,

      wir sind ein deutschsprachiges Forum, weshalb ich hier mal deinen Post sinngemäß für andere Leser übersetze:

      „Der einfachste und schnellste Weg ist, vorgefertigte Binärdateien aus den offiziellen Paket-Repositorien zu installieren.
      Der Haken daran: Die Standard-Repositorien enthalten meist eine sehr alte Version von Unison.

      Alternativ dazu gibt es vorgefertigte Binärdateien unter:
      https://github.com/bcpierce00/unison/releases für macOS, Linux und Windows.
      Es ist keine spezielle Installation erforderlich, entpacken Sie die Dateien einfach in einen Ordner Ihrer Wahl.“

      Nun, in Debian 13 ist Version 2.53.7 verfügbar – also die gleiche wie auf github.
      Ich würde grundsätzlich – in solchen Fällen – immer die Pakete aus dem Repository empfehlen.

Neue Themen im Forum
Statistik August 2025Die Entwicklung im WIKI im August 2025 Der August brachte einen … Weiterlesen
vnstat Daten von SIM-Karte im USB …Hallo zusammen, am 30.08.2025 hat mein Provider 1und1 meinen al … Weiterlesen
Eine Anwendung kompilieren, bei w …Ich nehme an, dass du mit Abhängigkeitsbaum entweder die Pakete me … Weiterlesen
Kategorien im Wiki
WIKI-Beiträge des Monates

Die Beiträge des Monates finden Sie im Kalender unter den blau markierten Tageszahlen.

September 2025
M D M D F S S
1234567
891011121314
15161718192021
22232425262728
2930  
Archive