cyrus-imapd und Quota

Diesen Beitrag schrieb ich 14 Jahre und 11 Monate zuvor; die nachfolgenden Ausführungen müssen heute nicht unbedingt noch genau so funktionieren. Behalte das beim Lesen (und vor allem: beim Nachmachen!) bitte stets im Hinterkopf.

Geschätzte Lesezeit: 2 Minuten

Irgendwann hatte ich mir einmal aufnotiert, wie innerhalb des cyrus-imapd Quotas gesetzt und ausgelesen werden; eine Information, die ggf. auch für andere „da draußen“ interessant sein könnte.

Die administrative Ansteuerung des cyrus-imapd erfolgt über den cyradm, und das umfasst so ziemlich alles: das Anlegen neuer sowie das Löschen nicht mehr benötigter User, das Prüfen der Mailboxgrößen, das Setzen der Zugriffsrechte und so weiter – und natürlich das Setzen und Auslesen der Quota. Ist man erst einmal im cyradm eingeloggt, erfolgt das Setzen der Quota in kB; nachfolgend setzen wir eine Quota von 1GB für den User fritz.

cyradm> sq user.fritz 1048576
quota:1048576

User arno soll eine Quota von 3GB erhalten.

cyradm> sq user.arno 3145728
quota:3145728

Selbstredend ist es günstiger, vorher zu prüfen, wieviel die User fritz und arno schon in ihrer Mailbox haben – und sie gegebenenfalls zum Aufräumen zu ermutigen ;) Wenn die Quota gesetzt ist, können wir schauen, wie ausgelastet die einzelnen Mailboxen im Verhältnis zur gesetzten Quota sind.

cyradm> lq user.arno
STORAGE 257701/3145728 (8.19209416707357%)

arno hat also ~251MB und somit 8.19% seiner Mailbox belegt. Dazu korrespondierend gibt es noch zwei weitere Files.

$ less /var/imap/quota/a/user.arno
263895518
3145728
$ less /var/imap/quota/f/user.fritz
10966
1048576

Hinweis: der korrekte Pfad steht in Abhängigkeit davon, was in /etc/imapd.conf als configdirectory konfiguriert wurde; in meinem Fall ist das /var/imap. Der Output ist unnötig kompliziert für mein Empfinden; der obere Wert in der Ausgabe für fritz gibt den tatsächlich belegten Speicher der Mailbox an (in Byte!, also in diesem Falle ~10kB), der untere Wert gibt den verfügbaren Speicher der Mailbox an (in kB!, also 1GB). Angeblich werden die Quotas im cyrus über ein 32bit-Integer gesetzt; im Umkehrschluss bedeutet das, dass eine Quota > 4GB zum einem Integer-Überlauf und damit in Zusammenhang stehenden, recht unangenehmen Problemen führt; diese Angabe muss ich jedoch für ganz aktuelle Versionen der Software noch überprüfen.

Im Thunderbird kann man sich die Auslastung als Balken begucken: Rechtsklick auf den Posteingang → Eigenschaften → Quota. Und in der Horde sorgt eine kleine Anpassung dafür, dass die Angabe sichtbar wird (Version 3.2): in imp/config/servers.php.

 'quota' => array (
 'driver' => 'cyrus',
 'params' => array()
)

Ausloggen, einloggen, und die Kapazitätenanzeige erscheint.