Cyrus-IMAP: Sicherung mit dem NSLU2

Da einem Bekannten vor ein paar Tagen seine Mails komplett abhanden gekommen sind, bin ich mal wieder aus meinem Winterschlaf hochgeschreckt und bemerkt, dass meine letzte Datensicherung des IMAP-Servers auch mittlerweile schon fast ein Jahr her ist. Nach ein wenig Sucherei habe ich auch ein Skript bei Hetzner gefunden, das ein Backup des Cyrus-IMAP Servers erstellt (allerdings ohne Kompression) und es für meinen kleinen SLUG angepasst. Es setzt vorraus, dass auf der angeschlossenen Festplatte genug Speicherplatz für das Backup vorhanden ist.
Die Daten werden auf meinem NSLU2 im Public Verzeichnis unter einem Unterverzeichnis namens /backup angelegt. Möchtet ihr das Backup gerne woanders speichern, so müsst ihr das Skript entsprechend anpassen. Das Backup erfolgt in zwei Schritten, um die Zeit, in dem Cyrus nicht läuft, minimal zu halten. Zuerst wird mittels Rsync ein Backup des laufenden Servers gemacht, bei dem allerdings nicht alle Dateien mitkopiert werden können. Danach wird der Server abgeschaltet und die restlichen, evtl. geänderten Dateien werden kopiert und der Server dann wieder gestartet.

Ich hoffe, dass es dem ein oder anderen Linksys NSLU2 Benutzer auch weiterhelfen kann.

#!/bin/sh
# This script creates a hot copy of the cyrus data files.
# We use a trick from the cyrus wiki. First, we use rsync to copy the spool
# and the cyrus dbs to the preliminary backup directory. Then, we shut down
# cyrus, rsync again and start cyrus again. This way, we reduce cyrus‘ downtime
# to a minimum.

echo "creating Cyrus backup"

echo "   creating directories"
rm -rf /share/flash/data/public/backup/cyrus
rm -rf /share/flash/data/public/backup/sieve
mkdir -p /share/flash/data/public/backup/cyrus/lib
mkdir -p /share/flash/data/public/backup/cyrus/spool
mkdir -p /share/flash/data/public/backup/sieve/spool

echo "   first rsync pass"
rsync -r /opt/var/lib/imap /share/flash/data/public/backup/cyrus/lib
rsync -r /opt/var/spool/imap /share/flash/data/public/backup/cyrus/spool
rsync -r /opt/var/spool/sieve /share/flash/data/public/backup/sieve/spool

echo "   halting cyrus"
/opt/etc/init.d/S59cyrus-imapd stop

echo "   second rsync pass"
rsync -r /opt/var/lib/imap /share/flash/data/public/backup/cyrus/lib
rsync -r /opt/var/spool/imap /share/flash/data/public/backup/cyrus/spool
rsync -r /opt/var/spool/sieve /share/flash/data/public/backup/sieve/spool

echo "   starting cyrus again"
/opt/etc/init.d/S59cyrus-imapd start

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.