Re: [Dovecot] migrate 15K users to new domain name
On Thu, Apr 19, 2012 at 05:59:39PM +0300, Timo Sirainen wrote: With v2.1.4 you could do something like: doveadm -c dummy.conf user -m user@domain where dummy.conf contains the minimum configuration needed: mail_home = /srv/mailstore/%256LRHu/%Ld/%Ln ssl = no Thanks! Works perfect. -jf
[Dovecot] migrate 15K users to new domain name
I need to migrate 15K users to a new domain name, and plan to use dsync mirror in the transition phase. Could someone confirm that this should work: Before giving users access to new-domain do a first sync to get all the stale data over: for user in $old-domain; do dsync mirror $user@old-domain $user@new-domain done Configure sieve vacation filter to forward all messages from $user@old-domain to $user@new-domain, and notify sender of changed address. Give users access to both new-domain and old-domain, and do a final sync. for user in $old-domain; do dsync mirror $user@old-domain $user@new-domain dsync mirror $user@old-domain $user@new-domain # twice in case the first was slow drop all messages for $user@old-domain Leave notice message for $user@old-domain saying he should use new-domain done Wait a few weeks/months, and then drop all users@old-domain. Does this look sensible? -jf
Re: [Dovecot] migrate 15K users to new domain name
On Thu, Apr 19, 2012 at 11:22, Jan-Frode Myklebust janfr...@tanso.netwrote: I need to migrate 15K users to a new domain name, and plan to use dsync mirror in the transition phase. Could someone confirm that this should work: Before giving users access to new-domain do a first sync to get all the stale data over: for user in $old-domain; do dsync mirror $user@old-domain $user@new-domain done Configure sieve vacation filter to forward all messages from $user@old-domain to $user@new-domain, and notify sender of changed address. Give users access to both new-domain and old-domain, and do a final sync. for user in $old-domain; do dsync mirror $user@old-domain $user@new-domain dsync mirror $user@old-domain $user@new-domain # twice in case the first was slow drop all messages for $user@old-domain Leave notice message for $user@old-domain saying he should use new-domain done Wait a few weeks/months, and then drop all users@old-domain. Does this look sensible? -jf What do you mean by a new domain in this context? Is the server changing? Is the storage changing? In my thinking, a domain change is as simple as using a rewrite rule in your MTA. I am sure I didn't understand your requirement and as such my response is equally vague. -- Best regards, Odhiambo WASHINGTON, Nairobi,KE +254733744121/+254722743223 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ I can't hear you -- I'm using the scrambler. Please consider the environment before printing this email. image001.png
Re: [Dovecot] migrate 15K users to new domain name
On Thu, Apr 19, 2012 at 02:01:44PM +0300, Odhiambo Washington wrote: What do you mean by a new domain in this context? The user's email addresses are changing from username@old.domain to username@new-domain. Is the server changing? No. Is the storage changing? The user's home directory is based on the user's email address, so this is changing. In my thinking, a domain change is as simple as using a rewrite rule in your MTA. Also the user's login-names needs to change from old to new domain, and all their data needs to move from old to new domain. -jf
Re: [Dovecot] migrate 15K users to new domain name
On Thu, Apr 19, 2012 at 16:28, Jan-Frode Myklebust janfr...@tanso.netwrote: On Thu, Apr 19, 2012 at 02:01:44PM +0300, Odhiambo Washington wrote: What do you mean by a new domain in this context? The user's email addresses are changing from username@old.domain to username@new-domain. That can be handled by address rewrites within the MTA. Is the server changing? No. Is the storage changing? The user's home directory is based on the user's email address, so this is changing. In my setup, I have virtual users. So the home directory is in the /var/spool/virtual/$domain/$user/mdbox How is yours setup? If the domain name changed, from domain1 to domain2, I believe it would be easy to change as follows: cd /var/spool/virtual/ mv $domain1 $domain2 Well, it the size of $domain1 is in TBs, I'd probably do it another way as doing mv is a bit dangerous with very large datasets: cd /var/spool/virtual mkdir domain2 cd domain1 for d in `ls -1`; do mv $d domain2/$d; done [ or something closer] In my thinking, a domain change is as simple as using a rewrite rule in your MTA. Also the user's login-names needs to change from old to new domain, and all their data needs to move from old to new domain. And the login names are stored in a flatfile or db?? Either way, you can do a rename. Dump the database and just use vi to rename old-domain to new-domain, then drop the db and import the dump. mysqldump dbname dbname.sql vi dbname.sql :g/old-domain/s//new-domain/g mysqladmin drop dbname mysqladmin create dbname mysql dbname dbname.sql You can also edit the flatfile to s/old-domain/new-domain/g cat flatfile | xargs sed -i.BAK 's/old-domain/new-domain/g' Maybe I still don't understand you:-) -- Best regards, Odhiambo WASHINGTON, Nairobi,KE +254733744121/+254722743223 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ I can't hear you -- I'm using the scrambler. Please consider the environment before printing this email. image001.png
Re: [Dovecot] migrate 15K users to new domain name
On Thu, Apr 19, 2012 at 05:03:01PM +0300, Odhiambo Washington wrote: In my setup, I have virtual users. So the home directory is in the /var/spool/virtual/$domain/$user/mdbox How is yours setup? mail_home = /srv/mailstore/%256LRHu/%Ld/%Ln If the domain name changed, from domain1 to domain2, I believe it would be easy to change as follows: cd /var/spool/virtual/ mv $domain1 $domain2 If I could figure out what the %256LRHu hash is, mv would probably be a very good solution.. And the login names are stored in a flatfile or db?? LDAP Either way, you can do a rename. No, we need to keep the old username/password working, so that all users will get notified of the changed -- even if they take off on a 6 month vacation the day before the change. Maybe I still don't understand you:-) You seem to be understanding perfectly well. I've been looking myself blind on dsync mirror, when a simple mv probably will work just as well :-) -jf
Re: [Dovecot] migrate 15K users to new domain name
On 19.4.2012, at 17.19, Jan-Frode Myklebust wrote: mail_home = /srv/mailstore/%256LRHu/%Ld/%Ln If I could figure out what the %256LRHu hash is, mv would probably be a very good solution.. With v2.1.4 you could do something like: doveadm -c dummy.conf user -m user@domain where dummy.conf contains the minimum configuration needed: mail_home = /srv/mailstore/%256LRHu/%Ld/%Ln ssl = no It still does a userdb lookup though, so either the user@domain needs to exist in userdb or you need to create a separate dummy Dovecot installation using userdb static that the dummy.conf uses.