Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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 prealfa.
#/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