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

El servidor Zimbra debe tener el cliente Bacula instalado y configurado, y el siguiente script debe estar en la misma máquina. La secuencia de comandos lista todos los cuadros de correo electrónico de Zimbra (zmprov -l gaa) y realiza una copia de seguridad en línea de cada una de ellas directamente a Bacula, a través del plugin bpipe.

En la restauración de la caja el proceso es automático, siendo que mensajes, eventos de calendario y todos los demás elementos del usuario se restauran automáticamente a Zimbra. Los elementos similares existentes no se sobrescriben (skip).

La secuencia de comandos proporciona los niveles incrementales (2 últimos días de los cambios en las cajas); Diferencial (últimos 7 días); y completo (toda la caja). Puede modificar estos valores en el script mismo.

El restore es automático requiere algún espacio en disco en el servidor de Zimbra, debido a una limitación del comando postRestURL que no permite leer los datos directamente del FIFO.

#!/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ês (Portugués, Brasil)enEnglish (Inglés)esEspañol

Deja una respuesta