Backup y restauración de buzones en Zimbra Open Source Edition

La version Open Source de Zimbra es una excelente plataforma de correo y colaboración. Aunque no incluya las utilidades para realizar backups y restauración, al igual que la versión Network Edition, es posible respaldar y restaurar las cuentas de correo utilizando zmmailbox.

Los respaldos realizados con zmmailbox incluyen:

  • Todas las carpetas de correo (Inbox, Sent, Draft, etc)
  • Las entradas de la libreta de direcciones
  • Las entradas del calendario
  • Las Tareas
  • Los archivos de Mi Maletín
Con esto podemos respaldar y restaurar lo mas importante y valioso para nosotros: la información, ya sea correo, contactos, eventos de calendario, etc.

Backup

Para realizar el respaldo de una cuenta de correo se debe ejecutar lo siguiente como usuario zimbra:

     zmmailbox -z -m cuenta@servidor.com getRestURL -o cuenta.tgz “//?fmt=tgz”

  • cuenta@servidor.com: es la cuenta a respaldar
  • cuenta.tgz: es el nombre del archivo donde se guardará la información de la cuenta
  • “//?fmt=tgz”: es el formato en que queremos salvar el respaldo. Puede ser tgz o zip

Restauración

Para restaurar se debe utilizar el mismo comando pero haciendo una pequeña variación las opciones y los argumentos:

     zmmailbox -z -m cuenta@servidor.com postRestURL  “//?fmt=tgz&resolve=reset” cuenta.tgz

Las opciones de resolve pueden ser:

  • modify: modifica el elemento viejo
  • replace: borra el elemento viejo y lo vuelve a crear
  • reset: borra todos los elementos de la carpeta antes de importar
  • skip: no importa los elementos duplicados

En mi caso particular, y para un cliente, he creado y probado un script (muy básico…) para hacer las copias de todos los buzones y borrar los anteriores a 15 días. Y como tal, se debe considerar una versión pre-alfa.

#/bin/bash
##
# JSJ 2012

BACKUP_DIR=/opt/backup
DATE=`date +%d%b%Y`
# LOG=$BACKUP_DIR/$DATE/$DATE.log
# touch $BACKUP_DIR/$DATE/$DATE.log
mkdir $BACKUP_DIR/$DATE
touch $BACKUP_DIR/$DATE/$DATE.log
LOG=$BACKUP_DIR/$DATE/$DATE.log
OLD=$(date +%d%b%Y –date=’15 days ago’)
# Generamos una lista de usuarios y la guardamos en usuarios.txt
/opt/zimbra/bin/zmprov -l gaa >> $BACKUP_DIR/$DATE/usuarios.txt
for user in `cat $BACKUP_DIR/$DATE/usuarios.txt`; do
echo ” Generando backup de ” $user “” >> $LOG
# Exportamos los buzones de cada usuario en un fichero con el formato usuario.tgz.
sudo -u zimbra /opt/zimbra/bin/zmmailbox -z -m $user getRestURL “//?fmt=tgz” > $BACKUP_DIR/$DATE/$user.tgz
done
if [ -d $BACKUP_DIR/$OLD ] # Si el directorio existe..
then
echo “Borramos la carpeta de hace 15 días.” >> $LOG
rm -rf /opt/backup/$OLD
else
echo “La carpeta de hace 15 días no existe. No hacemos nada.” >> $LOG
fi

Anuncios

29 comentarios en “Backup y restauración de buzones en Zimbra Open Source Edition

  1. Se puede hacer backup y restaurar cuentas, dominios y hasta servidores completos usando una pequeña herramienta llamada zextras. Además tiene otras utilidades como la posibilidad de aplicar politicas HSM y sincronización con celulares.

    Responder
    • Si, lo he visto y lo he descargado hasta que me he dado cuenta que tengo que pasar por caja tras pasar los 30 días de prueba.
      No tengo nada en contra de hacer negocios (ni mucho menos), pero la versión Open es para ser Open. Con lo cual, mejor utilizar scripts/aplicaciones Open para hacer backups y/o Restaurar.
      Con respecto a la sincronización con móviles, también la tengo implementada -de forma gratuita-, con z-push. Pero esa será otra entrada que ya casi tengo lista 😉

      Responder
  2. Me has salvado el culo!!! No conseguiamos hacer las copias de las carpetas que tenían los usuarios dentro del INBOX, por fin hemos podido. Gracias maestro!

    Responder
  3. Oye en 2 server diferentes cuando quiero restaurar me marca lo siguiente: ERROR: zclient.IO_ERROR (Connection reset) (cause: java.net.SocketException Connection reset)

    Sabes a que se puede deber?

    La linea que hice para backup es: zmmailbox -z -m m.garza@midominio.com getRestURL -o /opt/backups/maria.tgz “//?fmt=tgz”

    Y en el server nuevo para restaurar: zmmailbox -z -m m.garza@midominio.com postRestURL “//?fmt=tgz&resolve=reset” /opt/maria.tgz

    Alguna idea?

    Responder
  4. Buen dia quisiera saber como migrar de Zimbra 6..a Zimbra 7, pasando todos los correos,calendarios,contactos,etc, de antemano muchas gracias por su ayuda

    Responder
  5. ERROR: zclient.IO_ERROR (invoke sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target, server: localhost) (cause: javax.net.ssl.SSLHandshakeException sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target)
    zimbra@zimbra:/mnt/disco/BKB-ZIMBRA-DNS$ unable to find valid certification path to requested target

    Este es el erro que me salta al querer ejecutar el comando que faltaria

    Responder
  6. Hola como están, me pueden apoyar en hacer un backup y restaurar sin eliminara ningún buzón, ya que es importante para nosotros, mi correo es lvallejos33@gmail.com

    * tengo tambien un problema en eliminai una cuenta de correo ya intente por comando y por consola, sale error:

    Mensaje: system failure: dropMailboxFromGroup(634)
    Código de error: service.FAILURE Method: [unknown] Detalles:soap:Receiver

    Mensaje: system failure: visiting blob digests list for mailbox 620 Código de error: service.FAILURE Method: [unknown] Detalles:soap:Receiver

    Responder
  7. Que tal amigo una consulta, tengo Zimbra 8.5, ejecuto los comandos y todo bien, pero solo me respalda la carpeta Inbox, las demas no, por que crees que suceda esto???. Saludos.

    Responder
    • Antes de nada, disculpas por la demora en la respuesta. Tengo algo abandonado este blog…. Quiero retomarlo pero he cambiado de trabajo y ahora tengo menos tiempo libre para poder dedicarme el tiempo que me gustaría… Espero que lo hayas solucionado ya, pero por si acaso….

      Si ejecutas el comando zmmailbox con un parámetro para debuggear igual te da mas info.

      Ejecuta zmmailbox -z -d -m cuenta@servidor.com getRestURL -o cuenta.tgz “//?fmt=tgz”

      Responder
  8. Hola, al ejecutar me manda este mensaje
    ERROR: zclient.IO_ERROR (c092016.tgz (Permiso denegado)) (cause: java.io.FileNotFoundException c092016.tgz (Permiso denegado))

    Responder
  9. No me funciona el el comando, me da un error y entiendo que es por un reemplazo que hace en el getRestURL pero no se por donde atacar el problema, ya le di vueltas pero no logro determinar porque toma ese valor.

    zmmailbox -z -m xxxxx@midominio.com getRestURL -o xxxx.tgz “//?fmt=tgz”
    ERROR: zclient.CLIENT_ERROR (unable to parse URI: https://server.midominio.com:7071/service/admin/soap/) (cause: java.net.URISyntaxException Illegal character in authority at index 8: https://Razon Social/home/xxxxx@midominio.com/?fmt=tgz)

    como ven Reemplaza el “server.midominio.com” por “Razón Social” que obvio no esta asociado a una IP , pero no se de donde lo saca!!!!

    Alguna sugerencia?

    Responder
      • No, el archivo hosts no tiene la Razón Social, solo nombre de equipos, sin blancos como debe ser. En parte entiendo que el “blanco” entre palabras es el problema, pero…. porque toma ese valor ahí y arriba lo toma bien!!!!

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s