Mailman Migrating (moving) mailing lists from one machine to another


1. Set up mailman on the new machine as you would a completely new installation

2. On the old machine go to the mailman directory e.g. /var/lib/mailman. Tar up following

cd /var/lib/mailman
tar -cvf mailman.tar archive data lists

3. Transfer the mailman.tar to the new machine and untar it ie.

cd /var/lib/mailman
tar -xvf

4. You will now need to fix URLs if the name of the new machine differs from the old one ie. your old machine is called oldlist.domain.com while the new one is called newlist.domain.com. Mailman encodes the old name in the config.pck files in $MAILMAN/lists directory. Thus you need to change it. To check how the URL looks like you can do following (please change testlist to a list on your system)

/var/lib/mailman/bin/dumpdb /var/lib/mailman/lists/testlist/config.pck | grep -i web_page_url

That will show you what URL is mailing list using e.g.

'web_page_url': 'http://oldlist.domain.com/cgi-bin/mailman/',

I wrote a little script to change it to the new machine URL.  Put this in a file, change paths to mailman and change the URL to point to your new machine

#!/bin/sh

for list in `ls /var/lib/mailman/lists/`
do
/var/lib/mailman/bin/withlist -l -r fix_url $list http://newlist.domain.com/cgi-bin/mailman/
done

5. Make sure you migrate all the aliases from /etc/aliases.
6. You are done.

Author: Vladimir Vuksan E-mail me