Software: Apache/2.2.22 (Debian). PHP/5.6.36 uname -a: Linux h05.hvosting.ua 4.9.110-amd64 #3 SMP Sun Nov 4 16:27:09 UTC 2018 x86_64 uid=1389(h33678) gid=1099(h33678) groups=1099(h33678),502(mgrsecure) Safe-mode: OFF (not secure) /usr/share/doc/dovecot-core/wiki/ drwxr-xr-x |
Viewing file: Select action/file-type: Online Mailbox Format Conversion -------------------------------- This page aims to help with the tasks around planned mailbox migrations to e.g. mdbox. To perform this exercise with minimum service interruption a Postfix check can be implemented to put mail for the accounts to be migrated on HOLD: Postfix main.cf --------------- ---%<------------------------------------------------------------------------- smtpd_recipient_restrictions = [...] check_recipient_access hash:/etc/postfix/recipient_maintenance, permit_mynetworks, reject_unauth_destination ---%<------------------------------------------------------------------------- /etc/postfix/recipient_maintenance ---------------------------------- ---%<------------------------------------------------------------------------- user@domain.tld HOLD Planned maintenance user1@domain.tld HOLD Planned maintenance user2@domain.tld HOLD Planned maintenance [...] ---%<------------------------------------------------------------------------- Virtual Domain Aliases in Postfix can be easily used to populate the *List of Recipients* to be converted (and to be queued on HOLD). The following basic script helps populating the database and needs to be adapted to the actual alias location: ---%<------------------------------------------------------------------------- #!/bin/bash set -e ALIASES="/etc/postfix/virtual" MAINTALIASES="/etc/postfix/recipient_maintenance" doveadm user $1 || { echo 'user query failed.'; exit 1; } sed -e "s/\(.*\)$1/\1/;s/[ \t]*$//; s/$/ HOLD Planned maintenance: account=$1/" $ALIASES >>$MAINTALIASES grep $1 $MAINTALIASES postmap $MAINTALIASES echo '[ Complete ]' ---%<------------------------------------------------------------------------- Usage: ---%<------------------------------------------------------------------------- $ maintalias.sh user@domain.tld ---%<------------------------------------------------------------------------- Finally running *postmap recipient_maintenance* will create the database (in case this part is not scripted). Actual Migration ---------------- Disable new logins for the users by adding 'allow_nets=' to their userdb records, effectively disallowing ALL nets. Close open sessions if any: ---%<------------------------------------------------------------------------- $ doveadm who <user> $ doveadm kick <user> ---%<------------------------------------------------------------------------- Convert the mailbox using the backup option: ---%<------------------------------------------------------------------------- $ dsync -u user@domain.tld backup mdbox:~/mdbox ---%<------------------------------------------------------------------------- Adjust userdb entries (if required) to reflect new 'mail_location'. Clear the 'recipient_maintenance' DB and undo 'allow_nets=' entries for the migrated users. Finally release and requeue all mail previously held: ---%<------------------------------------------------------------------------- $ postsuper -r [ALL] $ postqueue -f ---%<------------------------------------------------------------------------- (This file was created from the wiki on 2013-11-24 04:42) |
:: Command execute :: | |
--[ c99shell v. 2.0 [PHP 7 Update] [25.02.2019] maintained by PinoyWH1Z | C99Shell Github | Generation time: 0.0377 ]-- |