ctl_mboxlist -u ?

Joe Hrbek jhrbek at gplsinc.com
Thu Dec 18 14:04:52 EST 2003


Yes, the original script had a <\t> in between each word on every line.
However, in order for "echo" to process that, at least in redhat 8, I had to
add a -e as an option for the echo statement. Then it would process the \t.
I never did figure out why the < > was there,  it just showed up with the
other data being echoed, so I took it out.  ctl_mboxlist -u works now, the
\t was required. :)

Thanks,

-j

> -----Original Message-----
> From: Connie Starr Fensky [mailto:cfensky at mtsu.edu]
> Sent: Thursday, December 18, 2003 9:24 AM
> To: Joe Hrbek
> Cc: Info-Cyrus
> Subject: Re: ctl_mboxlist -u ?
>
>
> If I recall there is a tab at the end of the line, too. Did
> someone already
> answer this, and I just missed it!? Sorry it took me so long... Just too
> busy to read the list everyday (or even every week)
> Merry Christmas!
> c*
> ----- Original Message -----
> From: "Joe Hrbek" <jhrbek at gplsinc.com>
> To: "Info-Cyrus" <info-cyrus at andrew.cmu.edu>
> Sent: Friday, December 12, 2003 11:49 AM
> Subject: ctl_mboxlist -u ?
>
>
> > Hi everyone!
> >
> > I'm trying to write a bash script (just out of curiosity) that will
> harvest
> > usernames from the cyrus spool directory and then write the output to a
> file
> > in a similar manner that ctl_mboxlist -d would.  Below are my
> results thus
> > far.  Aside from the formatting, I see no difference in the output,
> however,
> > when I try to do a ctl_mboxlist -u on the file I generated it bails on
> each
> > line with an error: no partition found. (see below)
> >
> > Result from ctl_mboxlist -d > newmail:
> > user.bkieffer^foo^com       default bkieffer.foo.com    lrswipcda
> > cyrus   lrswipcda
> > user.bloberg^foo^com        default bloberg.foo.com     lrswipcda
> > cyrus   lrswipcda
> > user.bpruett^foo^com        default bpruett.foo.com     lrswipcda
> > cyrus   lrswipcda
> > user.bspringer^foo^com      default bspringer.foo.com   lrswipcda
> > cyrus   lrswipcda
> >
> > Result from a bash script that harvests directory names:
> > user.bboggess^foo^com default bboggess.foo.com lrswipcda cyrus lrswipcda
> > user.bdaniel^foo^com default bdaniel.foo.com lrswipcda cyrus lrswipcda
> > user.bfleming^foo^com default bfleming.foo.com lrswipcda cyrus lrswipcda
> > user.bgordon^foo^com default bgordon.foo.com lrswipcda cyrus lrswipcda
> > And my error after I run ctl_mboxlist -u:
> >
> > line 1: no partition found
> > line 2: no partition found
> > line 3: no partition found
> > line 4: no partition found
> > ..etc
> >
> > Certainly the formatting can't be causing this.  I see no difference in
> the
> > information in these two files either.  Am I missing some special
> character
> > or some mystery something or other?  I'm at a loss.  Ideas? Anyone?
> >
> > Thanks,
> >
> > -joe
> >
> > PS, here is my bash script.  It's still a work in progress and is based
> off
> > a script (by E M Recio) I found on the cyrus list. E Recio had "<\t>" in
> his
> > script but I took it out b/c it didn't seem to matter, the
> ctl_mboxlist -u
> > fails regardless of its presence. I left them in this version though so
> you
> > could see what I am talking about. BTW, I'm not very good with bash
> scripts,
> > so be kind. :)
> >
> > Here is the script:
> >
> > #!/bin/bash
> > #
> > # Requires: valid cyrus spool directory
> > #           sudo (to run as cyrus, or similiar appropriate user)
> > #
> > # Result: reads the spool directory and creates a text version
> > #         that can be imported to the mailboxes.db file using
> > #         ctl_mboxlist.
> > # Notes:
> > # The directory structure on my system is a/user/auser, b/user/buser,
> > c/user/cuser
> > # If your directory structure is not like this, EG, it may be
> > # /var/spool/imap/user and all the usernames are in one spot
> > # (var/spool/imap/user/auser), then you will have to make some changes.
> > #
> > # Credit: original script obtained from E M Recio <erecio at
> lo-tek.org>.
> > Modified
> > #         by Joe Hrbek <jhrbek at gplsinc.com>.
> > #
> > #
> > # ------------------------------------------------------------
> >
> > # Path to cyrus utilities
> > # Change as needed
> > util=/usr/lib/cyrus-imapd
> >
> > # Path to cyrus spool
> > # Change as needed
> > spool=/var/spool/imap
> >
> > # ACL super user (should be cyrus)
> > # Change as needed
> > acluser=cyrus
> >
> > # Replace next line with however you stop cyrus
> > # ie: killall master etc etc.
> > #/etc/rc.d/init.d/cyrus-imapd stop
> >
> > # Verify this path, change as needed
> > # This will save your existing mailboxes.db file (if you have one)
> > #mv /var/lib/imap/mailboxes.db /var/lib/imap/mailboxes.db.$$
> >
> > # Change to the imap spool directory
> > cd $spool
> >
> > # Clean-up
> > if [ -f /tmp/newmboxlist.txt ]
> >  then
> >   rm -f /tmp/newmboxlist.txt
> > fi
> >
> > # Tracking variables
> > messages=0
> > users=0
> > subfolders=0
> >
> > # Build our new mailbox file
> >
> > for i in `ls`
> >  do
> >  if [ -d $i/user ]
> >   then
> >    for j in `ls $i/user`
> >     do
> >      echo
> > "user.$j<\t>default<\t>${j//^/.}<\t>lrswipcda<\t>$acluser<\t>lrswipcda"
> > >>/tmp/newmboxlist.txt
> >       : $[users++]
> >       for k in `ls $i/user/$j`
> >        do
> >         if [ -d $spool/$i/user/$j/$k ]
> >          then
> >           echo "message folder found, saving: $k"
> >           echo
> >
> "user.$j.$k<\t>default<\t>${j//^/.}<\t>lrswipcda<\t>$acluser<\t>lrswipcda"
> > >>/tmp/newmboxlist.txt
> >           : $[subfolders++]
> >          else
> >           echo "email message, skipping: $k"
> >           : $[messages++]
> >         fi
> >       done
> >    done
> >  fi
> > done
> >
> > #
> > # Now we have everyone's base directory in /tmp/newmboxlist.txt, do:
> > #
> >
> > #chown $acluser /tmp/newmboxlist.txt
> > #sudo -u $acluser $util/ctl_mboxlist -u </tmp/newmboxlist.txt
> >
> > # and then:
> >
> > #for i in `ls`
> > # do
> > #  if [ -d $i/user ]
> > #   then
> > #    for j in `ls $i/user`
> > #     do
> > #     sudo -u $acluser $util/reconstruct -rf user.$i
> > #   done
> > # fi
> > #done
> >
> >
> > # Print results
> > echo "$users users were found and saved."
> > echo "$subfolders subfolders were found and saved."
> > echo "$messages messages were detected in the mail spool (no action
> taken)."
> > echo "Mailbox reconstruction complete. A plain text copy can be found in
> > /tmp/newmboxlist.txt."
> >
> > # EOF
> >
> >
> >
>





More information about the Info-cyrus mailing list