Installation · 4 min read · Nov 17, 2025
Installation eines Web-, E-Mail- und MySQL-Datenbankclusters auf Debian 8.4 Jessie mit ISPConfig 3.1 - Seite 4
** 7 Unison installieren
Als nächstes installieren wir Unison. Unison wird verwendet, um das Verzeichnis /var/www zwischen server1 und server2 zu synchronisieren.
Installieren Sie Unison auf server1 und server2 mit
apt-get install unisonJetzt installieren wir eine Unison-Konfigurationsdatei auf server1:
Erstellen Sie eine neue Datei /root/.unison/web:
mkdir /root/.unison
vi /root/.unison/web.prf… und fügen Sie den folgenden Inhalt hinzu:
# Wurzeln der Synchronisation
root = /var/www
root = ssh://192.168.0.106//var/www
# Pfade zur Synchronisation
#path = www
#path = vmail
# Einige Regex, die Namen und Pfade angeben, die ignoriert werden sollen
#ignore = Path stats ## ignoriert /var/www/stats
#ignore = Path stats/* ## ignoriert /var/www/stats/*
#ignore = Path */stats ## ignoriert /var/www/somedir/stats, aber nicht /var/www/a/b/c/stats
#ignore = Name *stats ## ignoriert alle Dateien/Verzeichnisse, die mit "stats" enden
#ignore = Name stats* ## ignoriert alle Dateien/Verzeichnisse, die mit "stats" beginnen
#ignore = Name *.tmp ## ignoriert alle Dateien mit der Erweiterung .tmp
ignore = Name sess_*
ignore = Name *access.log*
ignore = Name error.log
ignore = Name webalizer.conf
# Wenn auf true gesetzt, bewirkt dieses Flag, dass die Benutzeroberfläche
# das Fragen nach Bestätigungen bei nicht konfliktären Änderungen überspringt. (Genauer
# gesagt, wenn die Benutzeroberfläche mit der Festlegung der
# Ausbreitungsrichtung für einen Eintrag fertig ist und zum
# nächsten übergeht, überspringt sie alle nicht konfliktären Einträge und geht
# direkt zum nächsten Konflikt.)
auto=true
# Wenn dies auf true gesetzt ist, stellt die Benutzeroberfläche keine
# Fragen. Nicht konfliktäre Änderungen werden propagiert;
# Konflikte werden übersprungen.
batch=true
# !Wenn dies auf true gesetzt ist, fordert Unison eine zusätzliche
# Bestätigung an, wenn es scheint, dass die gesamte Kopie gelöscht wurde,
# bevor die Änderung propagiert wird. Wenn das Batch-Flag
# ebenfalls gesetzt ist, wird die Synchronisation abgebrochen. Wenn die
# Pfadpräferenz verwendet wird, wird dieselbe Bestätigung für
# oberste Pfade angefordert. (Im Moment betrifft dieses Flag nur die
# textbasierte Benutzeroberfläche.) Siehe auch die Mountpoint-Präferenz.
confirmbigdel=true
# Wenn diese Präferenz auf true gesetzt ist, verwendet Unison die
# Änderungszeit und die Länge einer Datei als `pseudo inode
# nummer`, wenn es Replikate auf Updates scannt, anstatt den
# vollständigen Inhalt jeder Datei zu lesen. Unter Windows kann dies dazu führen,
# dass Unison ein Update nicht propagiert, wenn die Änderungszeit
# und die Länge der Datei durch das Update unverändert bleiben.
# Unison wird jedoch niemals ein solches Update mit einer
# Änderung aus der anderen Replik überschreiben, da es immer eine sichere
# Überprüfung auf Updates kurz vor der Propagierung einer Änderung durchführt.
# Daher ist es sinnvoll, diesen Schalter unter Windows die meiste Zeit
# zu verwenden und gelegentlich Unison einmal mit fastcheck auf false
# auszuführen, wenn Sie befürchten, dass Unison ein Update übersehen haben könnte.
# Der Standardwert der Präferenz ist auto, was dazu führt,
# dass Unison schnelles Prüfen auf Unix-Replikaten (wo es sicher ist)
# und langsames Prüfen auf Windows-Replikaten verwendet. Zur
# Rückwärtskompatibilität können ja, nein und standard anstelle von
# true, false und auto verwendet werden. Siehe den Abschnitt "Schnelles Prüfen" für weitere
# Informationen.
fastcheck=true
# Wenn dieses Flag auf true gesetzt ist, werden die Gruppenattribute der
# Dateien synchronisiert. Ob die Gruppennamen oder die Gruppen
# identifikatoren synchronisiert werden, hängt von der Präferenz numerids ab.
group=true
# Wenn dieses Flag auf true gesetzt ist, werden die Eigentümerattribute der
# Dateien synchronisiert. Ob die Eigentümernamen oder die Eigentümer
# identifikatoren synchronisiert werden, hängt von der Präferenz
# extttnumerids ab.
owner=true
# Die Einbeziehung der Präferenz -prefer root bewirkt, dass Unison immer
# Konflikte zugunsten von root löst, anstatt den Benutzer um
# Anleitung zu bitten. (Die Syntax von root ist dieselbe wie für
# die root-Präferenz, plus die speziellen Werte neuer und älter.)
# Diese Präferenz wird von der preferpartial-Präferenz überschrieben.
# Diese Präferenz sollte nur verwendet werden, wenn Sie sich sicher sind,
# dass Sie wissen, was Sie tun!
prefer=newer
# Wenn diese Präferenz auf true gesetzt ist, wird die textuelle Benutzeroberfläche
# nichts drucken, außer im Falle von Fehlern.
# Das Setzen von silent auf true setzt automatisch die Batch-Präferenz
# auf true.
silent=true
# Wenn dieses Flag auf true gesetzt ist, werden die Änderungszeiten von Dateien
# (aber nicht die Änderungszeiten von Verzeichnissen) propagiert.
times=false
# Wenn dieses Flag gesetzt ist, protokolliert Unison alle Änderungen an den Dateisystemen in einer Datei.
log=false
# Wenn dieses Flag auf true gesetzt ist, werden Gruppen und Benutzer numerisch synchronisiert,
# anstatt nach Namen.
# Die spezielle uid 0 und die spezielle Gruppe 0 werden niemals über Benutzer-/Gruppennamen abgebildet,
# selbst wenn diese Präferenz nicht gesetzt ist.
numericids=trueWir möchten die Synchronisation automatisieren, also erstellen wir ein kleines Skript und erstellen einen Cronjob auf server1:
mkdir /root/scripts
vi /root/scripts/unison.shund fügen Sie den folgenden Inhalt hinzu:
#!/bin/sh
lockdir=/tmp
UNISON=/usr/bin/unison
LOGGER=/usr/bin/logger
if [ ! -f /$lockdir/unison ]; then
touch $lockdir/unison
$UNISON -testserver web
rc=$?
if [[ $rc != 0 ]] ; then
echo "Fehler"
$LOGGER -d -t unison "web - Fehler beim Verbinden mit dem Remote"
else
$UNISON web
fi
rm $lockdir/unison
else
$LOGGER -d -t unison "Unison läuft bereits"
fiMachen Sie das Skript ausführbar:
chmod 700 /root/scripts/unison.shUnd führen Sie die erste Synchronisation durch. Um während der Synchronisation einige Ausgaben zu erhalten, setzen Sie silent = false in /root/.unsion/web.prf. Danach starten Sie Unison:
/root/scripts/unison.shSchließlich erstellen wir den Cronjob:
crontab -e# unison
* * * * * /root/scripts/unison.sh > /dev/nullErhalte neue Beiträge in deinem Posteingang.
Kein Spam. Jederzeit abmelden.