Script para migração simples de Zimbra para Zimbra (sem manter senha)

De Wiki Hackstore

Servidor origem

Acesse o servidor antigo, e execute este script como usuário zimbra:

#!/bin/bash
#set -x

# remove extra whitespace
crunch() {
        while read FOO ; do
              echo $FOO
        done
        }
ZMPROV="/opt/zimbra/bin/zmprov"
> /tmp/zmigrate/lista-full.csv
for ACCOUNT in $($ZMPROV -l gaa hackstore.com.br | sort);  do

TMPDIR="/tmp/zmigrate/${ACCOUNT}"
INFO_FILE="${TMPDIR}/info.txt"

mkdir -p "${TMPDIR}"

#########################################################

echo gerando dados de ${ACCOUNT}

${ZMPROV} ga ${ACCOUNT} | egrep "givenName|sn|title|telephoneNumber|uid|mobile|company|description|displayName" |grep -v 'zimbraSharedItem:' > ${INFO_FILE}

# Preenche campos vazios com caracter '-'
NOME="$(grep 'givenName: ' ${INFO_FILE}|cut -d":" -f2|crunch)"
SOBRENOME="$(grep 'sn: ' ${INFO_FILE}|cut -d":" -f2|crunch)"

        if [ -z "${NOME}" ] ; then
                NOME="-"
        fi

        if [ -z "${SOBRENOME}" ] ; then
                SOBRENOME="-"
        fi

#########################################################

echo "${ACCOUNT}:${NOME}:${SOBRENOME}" >> /tmp/zmigrate/lista-full.csv

#########################################################

done

Servidor destino

Antes de iniciar a criação dos usuários, leia um artigo para entender como é o procedimento de obter o COS default:

Criação de usuários no Zimbra

Somente após isso envie o arquivo lista-full.csv para o novo servidor e execute o script abaixo para criar as novas contas:

#!/bin/bash

while read LINHA;do

email=`echo $LINHA |cut -d: -f1`
nome=`echo $LINHA |cut -d: -f2`
sobrenome=`echo $LINHA |cut -d: -f3`
senha=${email}123@
COSid=f00428s1-0c00-11d8-836a-000d93sfes2s


        if [ -z "${nome}" ] ; then
                nome="-"
        fi

        if [ -z "${sobrenome}" ] ; then
                sobrenome="-"
        fi


echo criando conta $email ...

/opt/zimbra/bin/zmprov ca $email@hackstore.com.br $senha givenName "$email $sobrenome" zimbraCOSid ${COSid}

echo modificando conta $email ...
/opt/zimbra/bin/zmprov ma $email@hackstore.com.br givenName $nome sn $sobrenome

done < /tmp/lista-full.csv