«

»

jun 10

Imprimir Post

Backup Zimbra ZCOS (Open Source)

0 Flares Twitter 0 Facebook 0 Filament.io 0 Flares ×

zimbra_telligent

 

Zimbra é uma ótima ferramenta Open Source para colaboração de e-mail, que aos poucos vem tomando lugar frente ao Exchange Server e outras ferramentas de colaboração proprietárias.

 

A ferramenta pode ser utilizada de maneira “Self-Hosted”, ou seja, hospedada localmente em sua empresa. Desde que, você possua um servidor, de preferência com discos de alta velocidade e bom processador.

 

Memória é uma questão a se pensar, pois o Zimbra é um “gastão de memória”, quanto mais memória você entrega a ele, mais ele irá utilizar.

 

Bons críticos, culpam o Java. Mas como não tenho muito conhecimento em desenvolvimento Java, não vou opinar.

 

Estou apenas avisando que se você disponibilizar 64 GB de memória para ele, esta será consumida. E isto nem sempre será necessário.

 

Existem basicamente duas versões do Zimbra: a ZCSO (Open Source) e a NE (Network Edition).

 

A diferença entre as duas são algumas “Features”, como por exemplo o protocolo MAPI (Colaboração) e a opção de backup no painel Admin.

 

O protocolo MAPI é uma feature muito boa, mas com certeza o que faz mais falta na versão Open Source é a ferramenta de Backup.

 

Então vou expor um script de backup, com versionamento das caixas postais.

 

O comando básico para fazer backup:

 

zmmailbox -z -m user@domain.com getRestURL '/?fmt=tgz' > user@domain.com.tgz

O comando básico para restaurar:

zmmailbox -z -m user@domain.com postRestURL "/?fmt=tgz&resolve=skip" user@domain.com.tgz

A partir dai podemos tratar com shell, perl ou a linguagem que está mais habituado.

 

Eu gosto de usar o shell para tudo, então antes de procurar qualquer alternativa em outra linguagem, eu tento primeiramente no shell.

 

Existem algumas considerações no momento do restore, algum parâmetros podem ser alterados.

 

  • skip
    • Restaura os itens deletados.
    • Ignora os itens existentes completamente.
  • modify
    • Restaura os itens deletados.
    • Atualiza os itens existentes e compara com o backup (Ex: Itens lidos e não lidos).
  • reset
    • Deleta todos os itens da conta.
    • Restaura o backup em uma nova conta.

 

Lembrando que, o script foi feito para a minha necessidade. Analise se a sua é a mesma. =D

Backup Zimbra

 

#!/bin/bash
 ###################################################
# Script de backup simples do zimbra ###############
# Rubem de Lima Savordelli @ rsavordelli@gmail.com #
####################################################
 # Dir home do Zimbra
 ZHOME=/opt/zimbra
 # Dir de destino do backup
 ZBACKUP=/opt/zimbra/backup
 # Dir de confs do Zimbra
 ZCONFD=$ZHOME/conf
 # Data para versionamento
 DATE=$(date +%d-%m-%Y)
 # Caminho absoluto do backup, com data.
 ZDUMPDIR=$ZBACKUP/$DATE
 # Binário de backup
 ZMBOX=/opt/zimbra/bin/zmmailbox
 # Data para verificação do versionamento.
 # Seguindo a sintaxe, coloque quantos dias de versionamento quer. No meu caso eu deixei com dois
 backupold=$(date --date "2 days ago" +%d-%m-%Y)
 # Arquivo de log
 log=/var/log/backup.log
 # Arquivo de debug, passos mais importantes do script, para debugar mesmo.
 debug=/var/log/backup.debug
 # Conta a enviar e-mail no final do backup
 admin=notificacoes@domain.com
# Nao alterar daqui pra frente.
 # Remove Backups antigos
 echo " Removendo Backups antigos" >> /var/log/backup.debug
 sleep 5
 # Verifica se existem diretórios mais antigos que o setado na variavel backupold
 if [ -d $ZBACKUP/$backupold ] ; then
 rm -rf $ZBACKUP/$backupold
 fi
 # Cria o diretório do dia.
 if [ ! -d $ZDUMPDIR ]; then
 mkdir -p $ZDUMPDIR
 fi
echo "backup $backupold removido" >> /var/log/backup.debug
# Gerando lista de contas para o backup.
 echo " Gerando lista ... "
 for mbox in `/opt/zimbra/bin/zmprov -l gaa`
 do
 echo " Gerando backup da conta $mbox ..."
 echo "Usuário $mbox" >> $debug
#Exportando contas com ZMprov e checando integridade. Caso a saida do comando seja um erro, envia um e-mail para a conta $admin
 echo "inicio backup `date` $mbox " >> $debug
 echo "=================================================" >> $debug
 $ZMBOX -z -m $mbox getRestURL "//?fmt=tgz" > $ZDUMPDIR/$mbox.tgz && echo "Backup da conta $mbox OK " || (echo "Subject: FALHA NO BACKUP DO ZIMBRA ";echo "Falhou") | /opt/zimbra/postfix/sbin/sendmail $admin
 echo "Fim backup `date` $mbox " >> $debug
 echo "=================================================" >> $debug
 done
Rubem De Lima Savordelli (5 Posts)


0 Flares Twitter 0 Facebook 0 Filament.io 0 Flares ×

Sobre o autor

Rubem De Lima Savordelli

Link permanente para este artigo: http://comunidade.aw2net.com.br/backup-zimbra-zcos-open-source/

2 comentários

  1. Gustavo Salaberry

    Adicionalmente eu também faço backup do LDAP adicionando o comando abaixo ao script.

    /opt/zimbra/openldap/sbin/slapcat -F /opt/zimbra/data/ldap/config -b “” -l $ZDUMPDIR/zimbra-ldap.ldif

    1. Rubem De Lima Savordelli

      Legal Gustavo. Este post foi apenas das Mailboxes. Para o backup completo do zimbra precisariamos além do backup do Ldap, o backup do sqlite com as regras de cbpolicyd e do mysql do zimbra também.

      Tenho um outro script que fiz para backup full do Zimbra, vou postar aqui pra vocês.

      Me mande um e-mail (rsavordelli@aw2net.com.br) para te avisar quando eu postar.

      Att,

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

0 Flares Twitter 0 Facebook 0 Filament.io 0 Flares ×