A couple of weeks back we had to migrate a few mailing lists across to a new server. Migration was successful and we had minimum downtime, since no changes were done to the lists.
This HowTo assumes that the new server uses Postfix as an MTA. Using any other MTA is not a problem as long as it can read the Mailman generated aliases file.
Migrating mailman lists is a 3 step process.
2. Preparing New Server.
2.1 Installing Mailman.
Follow the official Mailman installation documentation given at http://www.list.org and make sure new server has python, Apache, and mod_python installed. Mailman's source tarball and distribution supplied packages are equally good. Depending on what you are using, mailman's installation directory would be /usr/local/mailman (in case of source install) or /var/lib/mailman (in case of debian package).
2.2 Configure Apache and Postfix.
If your mailing list uses a separate virtual host (highly recommended) then test out if Apache and postfix are correctly configured to serve a sample list.
3. Copying Data to New Server.
Copying data involves copying over three directories, which hold list configuration(lists), held messages/bounce stats(data) and list archives(archives).
Mailman stores its list specific settings like passwords, subscribers, list settings as python pickels in lists directory. First step in migrating list is to rsync this directory to the new server. You may copy over few selected lists, or all the lists using any means.
For example, to copy all the lists from old server the new server, issue this command on the old server:
Note: Above command will also replace the site wide mailing list named Mailman. So take backups if necessary.
The data directory stores all the held messages and bounce events. This directory also contains site wide administrator password and an aliases file which is used by the MTA to identify available
To copy data directory to the new server, issue this command on the old server.
Note: Above command will also replace the site wide administrator password file. Backup the existing data directory if required.
The archives directory stores mailing list archives if it is enabled(enabled by default).
To copy list archives, issue this command on the old server. # rsync -avz /usr/local/mailman/archives root@new-server:/var/lib/mailman/
4. Post Migration checks.
After the data is migrated, check for any permission issues. Its possible that the new server is configured to run mailman with the user list or mailman. Change the ownership of the directories copied accordingly.
4.1 Regenerating Aliases
The bin directory present in mailman installation contains several command line utilities for managing mailing lists. First step after copying over all the data is to regenrate the ailases file. To generate aliases run:
# cd /var/lib/mailman/bin
This step is not required if domain name of mailing lists remain same. In case the mailing lists are also changing their domain names, a few changes need to be made in the mailing lists too. Every MailList object has two attributes named web_page_url and host_name. These two attributes determine how mailman will write the list urls in the web pages it generates.
To fix the URLs issue these commands.
# cd /usr/local/mailman/bin
# ./withlist -l -r fix_url -u new-domain.example.org
4.3 DNS Updates
After these steps are over, its time to do DNS updates. Move over to your DNS configuration options and point the list domain to new server's IP address.
Try to send an email to any of the lists's -request alias, with `help' in the subject line. Mailman should immediately respond with a list of available commands.
HTTP based authentication is the most common and easy-to-setup way of protecting content in apache. But with normal .htaccess/.htpasswd based protection, the problem is, .htpasswd file should be present in the webserver's filesystem, and in most cases those users are not local unix users.
mod_auth_imap attempts to overcome this limitation by allowing apache to authenticate against an IMAP server, local/remote/whatever. Setting up authentication with mod_auth_imap is also straightforward.
If you issue cheques very often, and wonder how to write that weird amount in words, then lisp may come to your rescue.
CL-USER> (format t "~R" 5374538457834758345)
five quintillion three hundred seventy-four quadrillion five hundred thirty-eight trillion four hundred fifty
-seven billion eight hundred thirty-four million seven hundred fifty-eight thousand three hundred forty-five
i did write a script to heat up my cpu with openssl looping 256 times instead. On the P4 box, i get this message on my terminal within few seconds.
Message from syslogd@web2 at Wed Apr 4 12:56:34 2007 ...
web2 kernel: CPU0: Temperature above threshold
Message from syslogd@web2 at Wed Apr 4 12:56:34 2007 ...
web2 kernel: CPU0: Running in modulated clock mode
allright, no need to invest in room heater this winter.
I'd been searching in debian packages for something which could help me to create clips from videos. The lousy linear editor `kino' insists on only working with DV files and starts filling disk space with raw video as soon as you open a file.
Little did i realize that mighty mplayer can do this also.
Many times it happens that we are configuring network on a newly installed machine and forget what the DNS server addresses are.. or when your ISP's dns server just doesnt work.. If you find yourself in such situations frequently then its time you remember these easy to recall public dns servers.
22.214.171.124 - to - 126.96.36.199 (Verizon)
188.8.131.52 - to - 184.108.40.206 (GTI Internet)
220.127.116.11 (University of Toronto)
18.104.22.168 and 22.214.171.124 (Google)
Though i should add a note of caution, use these dns servers to get to the net, search for your ISP's dns servers and add them instead. Its really not a good idea to trample on someone else's bandwidth.. Also while using a third party DNS server, one must understand that its very easy for them to redirect icicibank.com to any server they wish
Its also a good idea to install bind locally to get out of such situations.. in which case the only IP to be added is 127.0.0.1
[Update: Dec 3, 2009]
Google today announced the launch of their own public DNS servers. The IP addresses for using their DNS servers are 126.96.36.199 and 188.8.131.52