Scott Silva a écrit :
on 10/3/2007 3:25 PM Bazy spake the following:
Ed W wrote:
How to disable pop3 and imap access during the data migration process (duration 5 minutes to 10 minutes). Can i send a custom error message to our users ?
I don't recall the exact details, but I think both options are possible if you check the dovecot wiki. There is a good study regarding the proxy stuff, and some notes on sending custom errors back (along with a note that it's not supported on many clients)
If you use SQL then you could simply change the query temporarily
Also when I do my migration I change the permissions on the home folders first (root:root say) - this way if I muck something up they don't get logged into the old mailbox. Then I reset the permissions back on the new server and update the proxy settings. This also gives a random error back to the client in the meantime if they try and log in.
I should think that the above could even be scripted and run per mailbox for a very subtle downtime period... I use rsync once while the mailbox is online, then change perms so that the user can't login, then do a final rsync to get any changes across. I didn't check whether there is a problem with an existing connection still accessing the data after the perms were changed though...
Good luck
Ed W
I'm not an perl expert, but... you could create a script that listens on port 143, and one for 110, that acts as a server. So right after ".login <username> <password>" the perl script will print an error, telling the client that the server is down for maintenance or something like that.
Like when you get the 550 error in smtp and it says "die spammer" :).
I think you can use IO::Socket::Telnet. Take a look over these scripts: http://www-user.tu-chemnitz.de/~uro/perlgoodies/server/
It's just an idea...
Or just stop the dovecot running on the proxy and the connections will just die.
Thanks for your answer, finaly the best solution is a simple chmod 0 on the /var/mail/domain.com ... migration, chmod 700 on the new disk, update the DB ... and wait about the cache TTL of the dovecot deliver ;-)
One bash script and 80% of my 10'000 domains can be migrated to the new disk in less than 5 minutes.
Thanks you
Dom