Migration, Umzug des Cyrus Imap Mailservers

Die Mailboxen und alle dazugehörige Daten des Cyrus Imap Mailservers werden in zwei Schritten umgezogen. In unserem Fall migrieren wir die Mailboxen von openSuSE 10.3 (cyrus 2.3.8) auf openSuSE 12.3 (cyrus 2.3.18) und die Daten der Maildatenbank mit dem Namen mail des alten MySQL Servers.
Es wird davon ausgegangen, dass der alte und der neue Cyrus Imap Mailserver so konfiguriert ist, wir hier beschrieben ist und beide funktionieren.

1.
Die Daten der Maildatenbank mit dem Namen mail auf dem alten Server können wir z.B. mit phpMyAdmin exportieren.
Wir exportieren z.B. nur Daten ohne Struktur.
2.
Auf dem neuen Server löschen wir alle Datensätze der Datenbank mail in allen Tabellen.
3.
Auf dem neuen Server importieren wir die zuvor exportierte Daten der Datenbank mail von dem alten Server .
4.
Im zweiten Schritt übertragen wir die Mailboxen und der Dump der Cyrus Datenbank der Verzeichnisstruktur der Mailboxen. Bevor die Daten kopiert werden, sollte man den cyrus Dienst auf beiden Server stoppen.

linux_alt:/ # /etc/init.d/cyrus stop
linux_neu:/ # /etc/init.d/cyrus stop
linux_alt:/ # scp -r /var/spool/imap/user/* root@IP-Linux_neu:/var/spool/imap/user/
linux_alt:/ # scp -r /var/lib/imap/user/* root@IP-Linux_neu:/var/lib/imap/user/

 

linux_alt:/ # su cyrus -c "/usr/lib/cyrus/bin/ctl_mboxlist -d" >/var/lib/imap/mailboxes.txt
linux_alt:/ # scp /var/lib/imap/mailboxes.txt root@IP-Linux_neu:/var/lib/imap/
5.
Auf dem neuen Server ändern wir die Rechte der Dateien und dann importieren wir die Verzeichnisstruktur der Mailboxen in die cyrus DB
linux_neu:/ # chown -Rv cyrus:mail /var/lib/imap/user/*
linux_neu:/ # chown -Rv cyrus:mail /var/spool/imap/user/*
linux_neu:/ # chown -Rv cyrus:mail /var/lib/imap/mailboxes.txt
linux_neu:/ # su cyrus -c "/usr/lib/cyrus/bin/ctl_mboxlist -u"</var/lib/imap/mailboxes.txt
6.
Zuletzt müssen wir noch den reconstruct Befehl ausführen. Bevor wir das machen, gehen wir noch in den Ordner /var/spool/imap/user und schauen, ob die rechte stimmen. Die Rechte sollten auf cyrus:mail stehen.

 

linux_neu:/ # cd /var/spool/imap/user
linux_neu:/ # sudo -u cyrus /usr/lib/cyrus/bin/reconstruct -r user.*
linux_neu:/ # /etc/init.d/cyrus start
 

 

Es könnte man den Befehl auch einzeln für die Posfäche einsetzen, z.B.

 

linux_neu:/ # sudo -u cyrus /usr/lib/cyrus/bin/reconstruct -r user.benutzername