La version de Zimbra open source no cuenta con una interfaz web de BackUp's, para ello existen scripts que se pueden realizar mediante los comandos de Zimbra. Para un facil manejo de ello, elabore un pequeño script.
Edito el archivo /usr/local/sbin/ZimbraBackup.sh
# vim /usr/local/sbin/ZimbraBackup.sh
#!/bin/bash
echo ""
echo "*******************************************"
echo "******** Zimbra BackUp & Restore ********"
echo "*******************************************"
echo ""
echo "Seleccione una opcion..."
echo ""
echo "BackUp completo de todo el Zimbra : opcion 1"
echo "BackUp de todas las cuentas : opcion 2"
echo "BackUp de una cuenta : opcion 3"
echo "Restore completo de todo el Zimbra : opcion 4"
echo "Restore de todas las cuentas : opcion 5"
echo "Restore de una cuenta : opcion 6"
echo "Enviar BackUp por SSH a otro servidor : opcion 7"
echo ""
echo -n "Ingrese opcion : "
read opcion
if [ $opcion -eq 1 ]; then
echo ""
echo "BackUp Completo"
echo "---------------"
echo Start time of the backup = $(date +%T)
before="$(date +%s)"
echo -n "Ingrese ruta destino local :"
read destino
echo "Se va a realizar el BackUp completo de /opt/zimbra a $destino ..."
/usr/bin/rsync -aHK --delete /opt/zimbra $destino/
before2="$(date +%s)"
echo The process lasted = $(date +%T)
after="$(date +%s)"
elapsed="$(expr $after - $before)"
hours=$(($elapsed / 3600))
elapsed=$(($elapsed - $hours * 3600))
minutes=$(($elapsed / 60))
seconds=$(($elapsed - $minutes * 60))
echo The complete backup lasted : "$hours hours $minutes minutes $seconds seconds"
else
if [ $opcion -eq 2 ]; then
echo ""
echo "Backup all email accounts"
echo "-------------------------"
echo Start time of the backup = $(date +%T)
before="$(date +%s)"
echo ""
echo -n "Ingrese ruta destino local :"
read destino
echo "Generando backup a la ruta $destino/ ..."
DATE=`date +"%a"`
ZDUMPDIR=$destino/$DATE
ZMBOX=/opt/zimbra/bin/zmmailbox
if [ ! -d $ZDUMPDIR ]; then
mkdir -p $ZDUMPDIR
fi
echo " Running zmprov ... "
for mbox in `/opt/zimbra/bin/zmprov -l gaa`
do
echo " Generating files from backup $mbox ..."
$ZMBOX -z -m $mbox getRestURL "//?fmt=zip" > $ZDUMPDIR/$mbox.zip
done
before2="$(date +%s)"
echo The process lasted = $(date +%T)
after="$(date +%s)"
elapsed="$(expr $after - $before)"
hours=$(($elapsed / 3600))
elapsed=$(($elapsed - $hours * 3600))
minutes=$(($elapsed / 60))
seconds=$(($elapsed - $minutes * 60))
echo The complete backup lasted : "$hours hours $minutes minutes $seconds seconds"
else
if [ $opcion -eq 3 ]; then
echo ""
echo "Backup una cuenta"
echo "-----------------"
echo Start time of the backup = $(date +%T)
before="$(date +%s)"
echo ""
echo -n "Ingrese ruta destino local :"
read destino
echo -n "Ingrese una cuenta de correo, ejemplo user@dominio.com :"
read cuenta
echo "Generando backup a la ruta $destino/ ..."
DATE=`date +"%a"`
ZDUMPDIR=$destino/$DATE
ZMBOX=/opt/zimbra/bin/zmmailbox
if [ ! -d $ZDUMPDIR ]; then
mkdir -p $ZDUMPDIR
fi
$ZMBOX -z -m $cuenta getRestURL "//?fmt=zip" > $ZDUMPDIR/$cuenta.zip
before2="$(date +%s)"
echo The process lasted = $(date +%T)
after="$(date +%s)"
elapsed="$(expr $after - $before)"
hours=$(($elapsed / 3600))
elapsed=$(($elapsed - $hours * 3600))
minutes=$(($elapsed / 60))
seconds=$(($elapsed - $minutes * 60))
echo The complete backup lasted : "$hours hours $minutes minutes $seconds seconds"
else
if [ $opcion -eq 4 ]; then
echo ""
echo "Restore todo el Zimbra"
echo "----------------------"
echo Start time of the backup = $(date +%T)
before="$(date +%s)"
echo ""
echo -n "Ingrese ruta donde esta el Backup completo(todo el directorio zimbra) :"
read origen
echo "Generando backup desde $origen hacia /opt/zimbra..."
/usr/bin/rsync -aHK --delete $origen /opt/zimbra
/bin/chown -R zimbra:zimbra /opt/zimbra
before2="$(date +%s)"
echo The process lasted = $(date +%T)
after="$(date +%s)"
elapsed="$(expr $after - $before)"
hours=$(($elapsed / 3600))
elapsed=$(($elapsed - $hours * 3600))
minutes=$(($elapsed / 60))
seconds=$(($elapsed - $minutes * 60))
echo The complete backup lasted : "$hours hours $minutes minutes $seconds seconds"
else
if [ $opcion -eq 5 ]; then
echo ""
echo "Restore all email accounts"
echo "--------------------------"
echo Start time of the backup = $(date +%T)
before="$(date +%s)"
echo ""
echo -n "Ingrese ruta de origen :"
read origen
echo "Restaurando backup desde $origen/ ..."
ZMBOX=/opt/zimbra/bin/zmmailbox
if [ ! -d $origen ]; then
echo "Backups do not exist !"
exit 255;
fi
for mbox in `/opt/zimbra/bin/zmprov -l gaa`
do
echo " Restoring files from backup $mbox ..."
$ZMBOX -z -m $mbox postRestURL "//?fmt=zip&resolve=reset" $origen/$mbox.zip
done
before2="$(date +%s)"
echo The process lasted = $(date +%T)
after="$(date +%s)"
elapsed="$(expr $after - $before)"
hours=$(($elapsed / 3600))
elapsed=$(($elapsed - $hours * 3600))
minutes=$(($elapsed / 60))
seconds=$(($elapsed - $minutes * 60))
echo The complete backup lasted : "$hours hours $minutes minutes $seconds seconds"
else
if [ $opcion -eq 6 ]; then
echo ""
echo "Restore de una cuenta"
echo "---------------------"
echo Start time of the backup = $(date +%T)
before="$(date +%s)"
echo ""
echo -n "Ingrese ruta de origen :"
read origen
echo -n "Ingrese la cuenta de correo, ejemplo user@dominio.com :"
read cuenta
echo "Restaurando la cuenta $cuenta desde $origen ..."
ZMBOX=/opt/zimbra/bin/zmmailbox
$ZMBOX -z -m $cuenta postRestURL "//?fmt=zip&resolve=reset" $origen/$cuenta.zip
before2="$(date +%s)"
echo The process lasted = $(date +%T)
after="$(date +%s)"
elapsed="$(expr $after - $before)"
hours=$(($elapsed / 3600))
elapsed=$(($elapsed - $hours * 3600))
minutes=$(($elapsed / 60))
seconds=$(($elapsed - $minutes * 60))
echo The complete backup lasted : "$hours hours $minutes minutes $seconds seconds"
else
if [ $opcion -eq 7 ]; then
echo ""
echo "Enviar por SSH a otro servidor"
echo "------------------------------"
echo Start time of the backup = $(date +%T)
before="$(date +%s)"
echo ""
echo -n "Ingrese ruta del BackUp :"
read origen
echo -n "Ingrese la IP y ruta destino del BackUP, ejemplo 192.168.1.100:/backup/ :"
read destino
echo "Enviado el Backup desde $origen hacia el servidor $destino ..."
/usr/bin/rsync -aHK --delete $origen $destino
before2="$(date +%s)"
echo The process lasted = $(date +%T)
after="$(date +%s)"
elapsed="$(expr $after - $before)"
hours=$(($elapsed / 3600))
elapsed=$(($elapsed - $hours * 3600))
minutes=$(($elapsed / 60))
seconds=$(($elapsed - $minutes * 60))
echo The complete backup lasted : "$hours hours $minutes minutes $seconds seconds"
else
echo "Ingrese una opcion valida"
fi
fi
fi
fi
fi
fi
fi
Finalmente le damos permiso de ejecucion
# chmod +x /usr/local/sbin/ZimbraBackup.sh
Listo, espero le sirva a alguien ...