Migrar usuários entre servidores do zimbra.

Pessoal, em março de  2016, me deparei com um novo grande desafio  na minha carreira. Me transformei em administrador de correio zimbra em uma grande instituição do governo brasileiro.

O ambiente não estava com a saúde em dia, e um dos problemas encontrados foi no servidor do zimbra onde fica guardado as caixas(mailbox). Para solucionar o problema da forma mais transparente possível, migrando as caixas para um servidor saudável. Criei o script em questão:


 

#!/bin/bash

## Script de migracao do dos usuários entre servidores correio1 e correio2.

# Gerar arquivo com as contas que contem as contas dos usuarios migrados
# Como gerar:
# /opt/zimbra/bin/zmprov sa zimbraMailHost=correio2.teste.com.br > usuarios_correio2.txt

# Criado por diogo.falcomer@gmail.com

# Ultima modificacao 28/06/2016

# Pasta home
HOME="/opt/MIGRACAO"

# Envs - Header
RUN_ZMPROV="/opt/zimbra/bin/zmprov"
RUN_ZMMAILBOX="/opt/zimbra/bin/zmmailbox"

# Servidor que irá receber as caixas.
SRV_MIGRACAO="correio1.teste.com.br"

# Trocar o de usuários que serão migrados arquivo na variavel:

MAILBOXS="/opt/MIGRACAO/usuarios_correio2.txt"

# Ordenando contas
 mv ${MAILBOXS} /tmp/temp_accounts_bkp
 cat /tmp/temp_accounts_bkp |sort |uniq > ${MAILBOXS}
 rm -f /tmp/temp_accounts_bkp


# Inicia a migração
for ACCOUNT in $(cat ${MAILBOXS})
do

 ## Faz backup da conta 
 $RUN_ZMMAILBOX -z -m $ACCOUNT getRestURL "//?fmt=tgz" > ${HOME}/${ACCOUNT}.tgz
 
 sleep 20

 ## Marca a conta em modo de manutencao 
 $RUN_ZMPROV ma $ACCOUNT zimbraAccountSTATUS maintenance
 
 sleep 10

 ## Move a conta para o Servidor novo. Via LDAP.
 $RUN_ZMPROV ma $ACCOUNT zimbraMailHost $SRV_MIGRACAO
 
 sleep 20

 ## Ativa a conta para restauarar o backup 
 $RUN_ZMPROV ma $ACCOUNT zimbraAccountSTATUS active

 sleep 30

 ## Restaura o Backup da conta no Servidor Novo.
 $RUN_ZMMAILBOX -z -m $ACCOUNT postRestURL "//?fmt=tgz&resolve=reset" ${HOME}/$ACCOUNT.tgz
 
 sleep 20
 
done



 

É isso aí, o script pode ser melhorado bastante, com entradas para o script  mesmo já retirar os usuários do servidor.

Lembrando que em caso de ambiente do zimbra divido em vários servidores. O comando para gerar as contas, deve ser executado direto no servidor LDAP.

Comentários

Postagens mais visitadas deste blog

Servidor de Email Seguro com Postfix - Amavis - Opendkim - Opendmarc

Script de Checagem de Serviço.

Convertendo servidores Linux do Xen para VmWare ESX.