Hallo Liste. durch ausgiebiges nächtliches rumfummeln habe ich mir meine Cyrus-Datenbanken wohl kaputt gemacht, indem ich einige der Cyrus-Maildateien gelöscht habe, wie /var/spool/imap/user/29. /var/spool/imap/user/30. usw. Wenn ein Client jetzt Mails abholen will, dann gibts eine Fehlermeldung, daß die Mail nicht abgeholt werden kann. Wie kriegt man denn den Cyrus dazu, daß er seine Datenbank den noch vorhandenen Maildateien anpaßt? Oder wie bekäme ich sonst das System wieder in Gang, ohne die Mailboxen zu löschen und neu anzulegen, mit dem damit verbundenen Mailverlust? Danke und Gruß. -- Andre Tann
Am Dienstag 31 Januar 2006 08:45 schrieb Andre Tann:
Hallo Liste.
Hallo Andre,
Wie kriegt man denn den Cyrus dazu, daß er seine Datenbank den noch vorhandenen Maildateien anpaßt? Oder wie bekäme ich sonst das System wieder in Gang, ohne die Mailboxen zu löschen und neu anzulegen, mit dem damit verbundenen Mailverlust?
AFAIK sollte cyrus bei jedem Start ein recover ausführen. Versuch doch mal rccyrus restart && tail -f /var/log/messages Dort sollte dann etwas von den Aktivitäten des cyrus auftauchen. Bei der Meldung "ready for work" sollte er fertig haben. HTH, George
Georg Schilling, Dienstag, 31. Januar 2006 09:00:
Dort sollte dann etwas von den Aktivitäten des cyrus auftauchen. Bei der Meldung "ready for work" sollte er fertig haben.
Der Auswurf ist (gekürzt um Zeit und Hostname): master[30452]: Error registering service with slp -20 master[30452]: ready for work mailsrv master[30456]: about to exec /usr/lib/cyrus/bin/ctl_cyrusdb mailsrv ctl_cyrusdb[30456]: checkpointing cyrus databases mailsrv ctl_cyrusdb[30456]: archiving database file: /var/lib/imap/annotations.db ctl_cyrusdb[30456]: archiving log file: /var/lib/imap/db/log.0000000001 ctl_cyrusdb[30456]: archiving database file: /var/lib/imap/mailboxes.db ctl_cyrusdb[30456]: archiving log file: /var/lib/imap/db/log.0000000001 ctl_cyrusdb[30456]: done checkpointing cyrus databases mailsrv master[30452]: process 30456 exited, status 0 Also ready for work ist er, aber trotzdem mag er die Clients nicht poppen lassen. Ich habe folgendes probiert: Ein Client hatte die Dateien 25. 28. 29. in seinem Folder. Jetzt habe ich einfach mit touch 26. 27. die fehlenden Maildateien angelegt, und schon ließ der cyrus den Client poppen. Aber bei vielen fehlenden Mails ist das natürlich kein Weg. -- Andre Tann
Hi Georg, Am Dienstag, 31. Januar 2006 09:00 schrieb Georg Schilling:
Am Dienstag 31 Januar 2006 08:45 schrieb Andre Tann:
AFAIK sollte cyrus bei jedem Start ein recover ausführen. Versuch doch mal rccyrus restart && tail -f /var/log/messages
das glaub ich eher nicht, zumindest meine uralte Version tut das anscheinend nicht. wenn ich mal von hand was aus den Mailboxen lösch oder was aus der Sicherung zurück hole dann geh ich immer her und mach ein # su - cyrus
reconstruct -r user.falk
damit werden alle mailboxen des users falk recursiv durchlaufen und die indexfiles neu aufgebaut. Gruss Falk
Falk Sauer, Dienstag, 31. Januar 2006 09:26:
# su - cyrus
reconstruct -r user.falk
Du meinst vermutlich, daß Du Dich bei cyradm einloggst, und dann das reconstruct laufen läßt, oder? Das jedenfalls habe ich jetzt mal gemacht, kann aber noch nicht checken, obs geholfen hat, mangels User vor Ort ;) -- Andre Tann
Hi Andre, Am Dienstag, 31. Januar 2006 09:37 schrieb Andre Tann:
Falk Sauer, Dienstag, 31. Januar 2006 09:26:
# su - cyrus
reconstruct -r user.falk
Du meinst vermutlich, daß Du Dich bei cyradm einloggst, und dann das reconstruct laufen läßt, oder?
ich logge mich wie du siehst als user cyrus ein und lasse das binäre elf-programm reconstruct laufen. Was der cyradm an der stelle macht/machen würde weis ich nicht da dieser direkte Weg bisher immer bestens funktioniert hat.
which reconstruct /usr/cyrus/bin/reconstruct file /usr/cyrus/bin/reconstruct /usr/cyrus/bin/reconstruct: ELF 32-bit LSB executable, Intel 80386, version 1, dynamically linked (uses shared libs), not stripped
Das jedenfalls habe ich jetzt mal gemacht, kann aber noch nicht checken, obs geholfen hat, mangels User vor Ort ;)
du bekommst für jede rekonstruierte Mailbox eine Zeile ausgegeben wenn alles geklappt hat, wenn es nicht geht sollte ne Fehlermeldung kommen. Gruss Falk
Hallo Falk, Falk Sauer, Dienstag, 31. Januar 2006 10:07:
ich logge mich wie du siehst als user cyrus ein und lasse das binäre elf-programm reconstruct laufen.
Das sah ich, und habe es auch gleich probiert. Aber ein recon<tab><tab> ergab keine Ergänzung, also ging ich davon aus, daß Du Dich vielleicht geirrt hast, suchte bei cyradm, und wurde fündig.
which reconstruct /usr/cyrus/bin/reconstruct file /usr/cyrus/bin/reconstruct
/usr/cyrus/bin/reconstruct: ELF 32-bit LSB executable, Intel 80386, version 1, dynamically linked (uses shared libs), not stripped
OK, ich sehe mir das an.
Das jedenfalls habe ich jetzt mal gemacht, kann aber noch nicht checken, obs geholfen hat, mangels User vor Ort ;)
du bekommst für jede rekonstruierte Mailbox eine Zeile ausgegeben wenn alles geklappt hat, wenn es nicht geht sollte ne Fehlermeldung kommen.
cyradm hat einfach gar nichts gesagt, keine Fehlermeldung, nichts. Also ein gutes Zeichen. Aber ich werde weiter experimentieren. Denn den Cyrus will ich demnächst in einer größeren Umgebung einsetzen, und da sollte man ihn dann schon besser kennen. Gruß. -- Andre Tann
Am Dienstag 31 Januar 2006 09:26 schrieb Falk Sauer:
Hi Georg,
Ho Frank,
Am Dienstag, 31. Januar 2006 09:00 schrieb Georg Schilling:
Am Dienstag 31 Januar 2006 08:45 schrieb Andre Tann:
AFAIK sollte cyrus bei jedem Start ein recover ausführen. Versuch doch mal rccyrus restart && tail -f /var/log/messages
das glaub ich eher nicht, zumindest meine uralte Version tut das anscheinend nicht.
Also hier rennt -----8<----- kunagnos:~ # cyradm -u cyrus localhost Password: localhost> version name : Cyrus IMAPD version : v2.2.3 2004/12/15 16:41:38 vendor : Project Cyrus support-url: http://asg.web.cmu.edu/cyrus os : Linux os-version : 2.6.5-7.244-default environment: Built w/Cyrus SASL 2.1.18 Running w/Cyrus SASL 2.1.18 Built w/Sleepycat Software: Berkeley DB 4.2.52: (August 5, 2005) Running w/Sleepycat Software: Berkeley DB 4.2.52: (June 30, 2004) Built w/OpenSSL 0.9.7d 17 Mar 2004 Running w/OpenSSL 0.9.7d 17 Mar 2004 CMU Sieve 2.2 DRAC TCP Wrappers mmap = shared lock = fcntl nonblock = fcntl auth = unix idle = idled localhost> quit -----8<----- Und in Anlehnung an die Ausgabe von Andre startet er bei mir auch ctl_cyrusdb, der...
wenn ich mal von hand was aus den Mailboxen lösch oder was aus der Sicherung zurück hole dann geh ich immer her und mach ein
# su - cyrus
reconstruct -r user.falk
damit werden alle mailboxen des users falk recursiv durchlaufen und die indexfiles neu aufgebaut.
laut man-page -----8<----- NAME ctl_cyrusdb - perform operations common to all Cyrus databases SYNOPSIS ctl_cyrusdb [ -C config-file ] -r [ -x ] ctl_cyrusdb [ -C config-file ] -c OPTIONS -r Recover the databases after an application or system failure. Also performs database cleanup like removing mailbox reservations (and any associated mailbox files). -----8<----- auch nichts anderes macht. Aber hin und wieder hab ich eh das Gefühl das cyrus ein wenig "zickig" reagiert. So long, George
participants (3)
-
Andre Tann
-
Falk Sauer
-
Georg Schilling