Scripting admin stuff?

Paul M Fleming pfleming at siumed.edu
Thu Mar 26 12:18:08 EDT 2009


Save you the work -- had to do the same thing myself.

Modify as needed - for example, i use this with Kerberos auth so no 
username / password is used.


#!/usr/bin/perl

use Cyrus::IMAP::Admin;
use Cyrus::IMAP;
$default_quota = 200000;

my $client = Cyrus::IMAP::Admin->new("server",143);
$client->authenticate;
@mailboxes = $client->list('%', 'user.');
foreach $mbx ( @mailboxes )
{

         @m = @$mbx;

         ($root, %quota) = $client->quotaroot($m[0]);

         $cur_usage = $quota{"STORAGE"}[0];
         $cur_quota = $quota{"STORAGE"}[1];

         if ( defined $cur_quota )
         {
                 # quota defined
                 if ( $cur_quota < $default_quota )
                 {
                         print "$m[0] : below default increasing\n";
                         $client->setquota($m[0],"STORAGE",$default_quota);
                 }
                 if ( $cur_quota > $default_quota )
                 {
                         print "$m[0] : over default: $cur_quota 
($cur_usage / $cur_quota)\n";
                 }
         }
         else
         {
                 print "$m[0] : NO QUOTA $cur_usage\n";
         }



}


On 3/26/2009 11:03 AM, Jeff Blaine wrote:
> In 2000, I wrote a simple script that was fed to cyradm
> to set all users quota to some value.
> 
> It appears today that the only option to do something like
> this is to learn the Cyrus::* Perl modules.
> 
> Is that correct?
> ----
> Cyrus Home Page: http://cyrusimap.web.cmu.edu/
> Cyrus Wiki/FAQ: http://cyrusimap.web.cmu.edu/twiki
> List Archives/Info: http://asg.web.cmu.edu/cyrus/mailing-list.html


More information about the Info-cyrus mailing list