Backup do Zimbra Granular de Caixas de Email e Restore Automático com o Bacula e Plugin Bpipe

O servidor do Zimbra deve ter o cliente Bacula instalado e configurado, e o script a seguir deve estar na mesma máquina. O script lista todas as caixas de email do Zimbra (zmprov -l gaa) e faz backup online de cada uma delas diretamente para o Bacula, através do plugin bpipe.

Na restauração da caixa o processo é automático, sendo que mensagens, eventos de calendário e todos os demais itens do usuário são restaurados automaticamente para o Zimbra. Items similares existentes não são sobrescritos (skip).

O Script prevê os níveis Incremental (últimos 2 dias de modificações nas caixas); Diferencial (últimos 7 dias); e Full (toda a caixa). É possível modificar esses valores no próprio script.

O restore é automático requer algum espaço em disco no servidor do Zimbra, por conta de uma limitação do comando postRestURL que não permite ler os dados diretamente do FIFO.

#!/bin/bash
#!/bin/bash
#
# Autoria: Heitor Faria (Copyleft: all rights reversed).
# Testado por: xxxx
#
# Deve ser chamado no sub-recurso INCLUDE do FileSet do bacula-dir.conf, referente ao backup do cliente instalado na máquina do Zimbra (por exemplo):
#
# Plugin = "\|/etc/bacula/bpipe_zimbra.sh %l"
#

level=$1

if [ $level == Incremental ]
then
query="&start=-2days"
fi

if [ $level == Differential ]
then
query="&start=-7days"
fi

zimbra_command="/opt/zimbra/bin/zmmailbox -z -m"

for zimbra_user in $(/opt/zimbra/bin/zmprov -l gaa); do
echo "bpipe:/var/$zimbra_user.tar:$zimbra_command $zimbra_user -t 0 getRestURL '/?fmt=tar$query':dd of=/tmp/$zimbra_user.tar && $zimbra_command $zimbra_user -t 0 postRestURL -i '//?fmt=tar&resolve=skip' /tmp/$zimbra_user.tar"
done

Algumas imagens

Backup do Zimbra Granular de Caixas de Email e Restore Automático com o Bacula e Plugin Bpipe 1 Backup do Zimbra Granular de Caixas de Email e Restore Automático com o Bacula e Plugin Bpipe 2

Disponível em: pt-brPortuguêsenEnglish (Inglês)esEspañol (Espanhol)

Deixe uma resposta