Re: Backup Expresso

Enviado por Antonio I. Glória em 20/2/2009 11:17:26
Ola Bruno,

Também estou testando procedimentos de backup.
A forma mais fácil de implementar estes procedimentos em minha opinião é em forma de Scripts. Encontrei no site apenas o feito por Hugo Doria (hugo@archlinux.org) em 13/11/08.
Fiz algumas alteracoes e outro script para recuperação o qual deu um resultado positivo. Por que não testa, comigo funcionou, estou anexando ambos.


BACKUP E RESTAURAÇÃO

---------------------------------------
Backup
---------------------------------------

#
# Script para fazer backup do Expresso Mail
#
# Arquivo: bak-expresso.sh
#
# Ele faz backup de:
# * Banco de dados
# * Base do LDAP
# * Cyrus
# * Emails
#
# Ultima modificacao: 17/02/2009
#
# Versao 1: Versao Inicial
#
# Autor: Hugo Doria (hugo@archlinux.org)
# Alteracoes: Antonio Ignacio Gloria (antonio.gloria@yahoo.com.br)
#

DIR_BACKUP="/root/backups/"
USUARIO_BANCO="postgres"
ARQ_LOG="backup.log"
if [ ! -d ${DIR_BACKUP} ]; then
mkdir -p ${DIR_BACKUP}
fi
cd ${DIR_BACKUP} || exit 1
echo "HISTORICO da COPIA de seguranca do EXPRESSO LIVRE - DATA INICIAL:" > ${ARQ_LOG}
date >> ${ARQ_LOG}
# Backup do postgres
echo "Fazendo o backup do banco ...\n" >> ${ARQ_LOG}
pg_dump -o -U ${USUARIO_BANCO} expresso > bkp-banco.dump
# Backup do ldap
echo "Fazendo o backup do ldap ...\n" >> ${ARQ_LOG}
slapcat > bkp-ldap.ldif
# Backup do cyrus
echo "Fazendo o backup do cyrus ...\n" >> ${ARQ_LOG}
# "Parando o cyrus ..."
/etc/init.d/cyrus2.2 stop >> ${ARQ_LOG}
if [ -d /var/spool/cyrus ]; then
echo "Fazendo o dump da estrutura do cyrus ..." >> ${ARQ_LOG}
su - cyrus -c "/usr/sbin/ctl_mboxlist -d > bkp-cyrus.dump"
mv /var/spool/cyrus/bkp-cyrus.dump .
echo "Compactando as mensagens ..." >> ${ARQ_LOG}
tar -jcvf bkp-mail.tar.bz2 /var/spool/cyrus >> ${ARQ_LOG}
fi
if [ -d /var/lib/cyrus ]; then
echo "Compactando o /var/lib/cyrus ..." >> ${ARQ_LOG}
tar -jcvf bkp-cyrusvarlib.tar.bz2 /var/lib/cyrus >> ${ARQ_LOG}
fi
/etc/init.d/cyrus2.2 start >> ${ARQ_LOG}
echo "Backup finalizado e salvo em ${DIR_BACKUP}" >> ${ARQ_LOG}


---------------------------------------
Restauração
---------------------------------------
#!/bin/bash
#
# rest-expresso.sh
#
# Script para recuperar (restore) o backup do Expresso Mail
# Conforme escrito por Hudo Doria em 13/11/2008 em bkp-espresso.sh
#
# Prevendo apenas a totalidade das copias de:
# * Banco de dados
# * Base do LDAP
# * Cyrus
# * Emails
#
# Ultima modificacao: 18/02/2009
#
# Versao1 : Versao Inicial
#
# Autor: Antonio Ignacio Gloria (antonio.gloria@yahoo.com.br)
#
DIR_BACKUP="/root/backups/"
USUARIO_BANCO="postgres"
cd ${DIR_BACKUP} || exit 1
echo "Restaurando a base do Expresso..."
psql -U ${USUARIO_BANCO} -c "DROP DATABASE expresso;"
psql -U ${USUARIO_BANCO} -c "CREATE DATABASE expresso with ENCODING='latin1';"
psql -U postgres expresso <${DIR_BACKUP}bkp-banco.dump
echo "Restaurando o LDAP - demora um pouco - aguarde"
/etc/init.d/slapd stop
rm -rf /var/lib/ldap/*
echo "Esta etapa nao gera log - aguarde ..."
slapadd -l ${DIR_BACKUP}bkp-ldap.ldif
chown -R openldap /var/lib/ldap/
/etc/init.d/slapd start
if [ -f ${DIR_BACKUP}bkp-cyrus.dump ];
then
echo "Restaurando o Backup do CYRUS"
su - cyrus -c "/usr/sbin/ctl_mboxlist -u < ${DIR_BACKUP}bkp-cyrus.dump"
echo "Descompactando as mensagens - demora mais um pouco - aguarde !"
echo "Acompanhe o log crescente no arquivo /var/lib/cyrus/log/mail.log"
cd /
tar -jxvf ${DIR_BACKUP}bkp-mail.tar.bz2 > /var/lib/cyrus/log/mail.log
fi
if [ -f ${DIR_BACKUP}bkp-cyrusvarlib.tar.bz2 ];
then
echo "Descompactando o diretorio /var/lib/cyrus - demora - aguarde !!"
echo "Acompanhe o log crescente no arquivo /var/lib/cyrus/log/varlib.log"
cd /
tar -jxvf ${DIR_BACKUP}bkp-cyrusvarlib.tar.bz2 > /var/lib/cyrus/log/varlib.log
chown -R cyrus.mail /var/lib/cyrus
fi
echo "Reconstruindo a lista de msgs dos usuarios - o que mais demora - aguarde !!!"
echo "Acompanhe o log crescente no arquivo /var/lib/cyrus/log/reconstruct.log"
su - cyrus -c "/usr/sbin/cyrreconstruct -rf user/* > /var/lib/cyrus/log/reconstruct.log"
echo "Iniciando o CYRUS"
/etc/init.d/cyrus2.2 start
echo "Recuperado o banco Expresso Livre conforme backup - Verifique."

Fonte: http://www.expressolivre.org/newbb/viewtopic.php?forum=4&topic_id=1012&post_id=5767