IMAP-Server syncen

In den letzten Wochen sind mir mehrmals Festplatten meiner „Server“ verreckt. Auf den Servern lief unter anderem mein Mailserver mit Dovecot. Nachts werden die Daten zwar immer gesichert, aber der letzte Crash fand genau zum Zeitpunkt des Backups statt. Daher konnte ich dieses Backup nicht nutzen. Zum Glück konnte ich auf die Festplatte noch per externem Festplattengehäuse zugreifen und den aktuellen Stand des Mailservers manuell sichern und in der neuen Installation wieder einspielen.

Aber wie kann man die Daten dann zeitnah sichern? Mir fiel ein, dass auf meinem Synology-NAS ein Mailserver aktiviert werden kann. Idee war nun, den Hauptmailserver mit dem Mailserver auf der Synology zeitnah zu syncen. Da auf der Synology auch noch ein Webmailer installiert werden kann, hätte ich so eine Notbehelfslösung beim nächsten Crash.

Ich hatte mir zuerst Offlineimap angeschaut. Leider zickt es mit selbstgenerierten Zertifikaten bei SSL Verbindungen. Dann Imapsync gefunden. Es kann komplett über die Kommandozeile gesteuert werden. Und, da ich meine Rechner mittlerweile alle unter Arch Linux laufen lasse, es findet sich ein passendes Installationspaket in AUR, dem Programmrepository welches von Nutzern gepflegt wird.

Nach der Installation von Imapsync habe ich mir ein Shell-Skript angelegt, welches den Aufruf von Imapsync kapselt. Da auf dem Mailserver nur mein Account liegt, ist es eine ganz simple Lösung.

Das Shellskript findet sich unter ~/imapsync_calibanatspace.sh und hat folgenden Inhalt:

#!/bin/bash
imapsync --host1 localhost --port1 993 --user1 benutzername1 --password1 geheimespasswort1 --ssl1 --host2 backupmailserver --port2 993 --user2 benutzername2 --password2 geheimespasswort2 --ssl2 --delete2

Das Shellskript wird per Cron regelmässig aufgerufen. Ich lasse den Syncvorgang testweise erstmal alle drei Stunden durchführen. Daher habe ich folgendes für meinen Benutzer in der Crontab eingetragen:

0 0,3,6,9,12,15,18,21 * * * ~/imapsync_calibanatspace.sh