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
Disponível em: PortuguêsEnglish (Inglês)Español (Espanhol)