Octoate.de – Sinnvolles könnt ihr woanders lesen Konkrete Themen – Fehlanzeige, was mich gerade beschäftigt, wird aufs Korn genommen.

26Nov/080

Backup Skript für Cyrus-IMAP Server auf NSLU2

Da bei mir endlich mal wieder ein Emailserver-Backup her sollte, habe ich nach Lösungen gesucht, um eine Sicherung meines Cyrus-IMAP Servers auf meinem Linksys NSLU2 durchzuführen. Dabei ist ein Skript entstanden, das automatisch die benötigten Schritte durchführt. Ihr findet es auf der rechten Seite unter "Themen".

26Nov/080

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

1Sep/080

Mailserver mal neu starten

Wie ich hier im Blog bereits schrieb, habe ich mir einen NSLU2 von Linksys so aufgebohrt, dass er als Mailserver in meinem Netzwerk verwendet wird. Leider war es in letzter Zeit so, dass sich der Spamfilter, Spamassassin, regelmäßig weggeschossen hat und ich so keine Mail mehr raus oder reinbekam. Bei normalen Mails ging es meistens noch, waren allerdings Anhänge mit dabei, war schnell Feierabend. Um das Problem zu beheben ist es notwendig den Spamassassin Dienst zu beenden und neu zu starten. Da aber auch das ein oder andere Programm auf der kleinen Kiste immer mehr Speicher verbraucht habe ich mich jetzt dazu entschlossen die kleine Kiste einmal in der Woche automatisch neu starten zu lassen. Ich will hoffen, dass das zumindest ein wenig Abhilfe schafft und keine sonstigen Probleme aufwirft. Durch den ganzen Overhead von Perl braucht Spamassassin viel Speicher, der auf der Slug nicht zur Verfügung steht. Kann also auch passieren, dass ich in Zukunft auf den Spamfilter im Mailserver verzichte und dann wieder ausschliesslich auf dem Client filtere (was bei IMAP irgendwie nicht gerade das gelbe vom Ei ist, da man jede Nachricht erstmal herunterladen muss).
Mal schauen, ob ich dann beim geplanten Restart auch ein automatisches Backup der Maildatenbank mit einbaue. Bisher mache ich das noch manuell per Rsync.