When I upgraded to Cyrus IMAP v2.2.3 from an age old ESYS version (a commercial knock off of a v.1.x). I used imapsync to move the mail spools from one server to another and then after all was up and going a crash caused the mailboxes database to be irreparably damaged. Yikes, the "-m" functionality is diabled in the reconstruct utility.
I wrote the following perl script to mine the information necessary to rebuild the mailboxes database and write it to a file, and so I thought I'd pass it on. I only use a single default partition (some 280GB fully mirrored). If someone has multiple partitions, it would not be that big a task to have the program read /etc/imapd.conf and do each partition separately. #! /usr/bin/perl use strict; my $SPOOL = '/var/spool/imap'; foreach my $ltr ( 'A' .. 'Z' ) { chdir "${SPOOL}/${ltr}/user"; my @dirs = `find . -type d`; foreach my $dir ( @dirs ) { chomp $dir; # Things to ignore next if $dir eq "."; next unless -f "${dir}/cyrus.header"; # ACLs are the last line in the cyrus.header file my @cyrus_header = `cat \"${dir}/cyrus.header\"`; my $acl = pop @cyrus_header; chomp $acl; # # Replace the leading "./" returned # by the find command with "user." # $dir =~ s/^\.\//user./; # # Replace directory path slashes # ("/") with dots (".") # $dir =~ s/\//./g; # Write result to STDOUT print $dir, "\tdefault\t", $acl, "\n"; } } -- Rob Tanner UNIX Services Manager Linfield College, McMinnville OR --- Cyrus Home Page: http://asg.web.cmu.edu/cyrus Cyrus Wiki/FAQ: http://cyruswiki.andrew.cmu.edu List Archives/Info: http://asg.web.cmu.edu/cyrus/mailing-list.html