Ir para o conteúdo
ou

Software livre Brasil

Heitor Medrado de Faria

Tela cheia
 Feed RSS

Blog

27 de Maio de 2009, 0:00 , por Software Livre Brasil - | Ninguém está seguindo este artigo ainda.

Backup do Expresso

23 de Fevereiro de 2010, 0:00, por Software Livre Brasil - 0sem comentários ainda

Pré-script para Backup do Expresso (ClientRunBeforeJob):

O seguinte script irá preparar o backup do Banco de dados, Base do LDAP, “Cyrus” e Emails do Expresso, para que então o Bacula possa fazer a cópia dos arquivos gerados, de maneira mais confiável.

Observe que, como o Bacula faz backup de arquivos abertos, estes são procedimentos realizados, apenas, para garantir a integridade das cópias de segurança.

Recomenda-se o backup de todo o / com o Bacula (exceto as pastas obviamente descartáveis: /proc, /tmp, etc.), para fins de recuperação de desastre em caso de perda completa do Servidor.

Os procedimentos abaixo estão de acordo com a Documentação Oficial da Ferramenta: “Procedimento de Backup do Expresso: Como fazer? >>rotinadebackup.pdf

#
# 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}

Fonte: http://www.expressolivre.org/html/modules/newbb/viewtopic.php?topic_id=1012

Autor: Hugo Doria (hugo@archlinux.org)

Procedimentos de Restauração:

Os procedimentos alinhados no script podem ser executados individualmente (para a restauração de apenas uma aplicação – ex.: banco-de-dados), ou para a recuperação integral do Servidor Expresso.

No caso da Restauração Integral, recomenda-se:

1. Instalação dos softwares e dependências necessários.

2. Execução do Shell-Script Abaixo*.

3. Pode ser necessário um update no Banco e reinstalação de aplicaçõs, através do: http://seuexpresso/setup.

4. Verificar se as quotas foram restauradas. Caso contrário, as reestabeleça (se alguém conhecer um script para backup das quotas, favor enviar).

5. Depois das quotas refeitas, é necessário executar o comando cyrquota -f para todos.

6. Após o restore das mensagens, pode ser necesário executar o comando “cyrreconstruct -rf”. Um detalhe importantíssimo, as flags das mensagens são guardadas no /var/lib/cyrus/user, então este diretório precisa ser recuperado também, e para que as flags das mensagens não se percam, NUNCA, NUNCA utilize o parâmetro -x no comando cyrreconstruct.

Segue o shell-script de restauração (passo 2)*:

#!/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."



Alterar Senha do Usuario Bacula no Mysql

10 de Fevereiro de 2010, 0:00, por Software Livre Brasil - 0sem comentários ainda

Você pode alterar a senha do usuário “bacula” no banco Mysql (aquela mesma senha que o Bacula utiliza no recurso “Catalog” do bacula-dir.conf), de duas maneiras:

Na console do mysql:

mysql> GRANT USAGE ON *.* TO bacula@”%” IDENTIFIED BY ‘NOVASENHA‘;

Ou no shell:

shell> mysqladmin -u bacula password NOVASENHA

Obviamente, NOVASENHA deverá ser a senha que deseja configurar.

Abraços!



Backup do “389 Directory Server” (FedoraDS e RHDS)

9 de Fevereiro de 2010, 0:00, por Software Livre Brasil - 0sem comentários ainda

“Serviço de Diretório 389” é o novo nome do “Fedora Directory Server”; “Red Hat Directory Server” é a versão certificada da RedHat, embora os dois compartilhem do mesmo código. Para fazer seu backup é relativamente simples:

1) No servidor que roda o Serviço de Diretório 389, deverá haver o script (ex.: /etc/bacula/scripts/make_389_backup):

#!/bin/sh
# execute a dump of 389
/usr/lib/dirsrv/slapd-soasi/db2bak /var/lib/dirsrv/slapd-soasi/bak/dump
# chmod 755 /etc/bacula/scripts/make_389_backup

Modifique  “slapd-soasi” por “slapd-xxx” onde “xxx” será o nome de sua instância slapd. Este script criará um diretório para dump bem como arquivos (que contém o conteúdo do diretório em si): /var/lib/dirsrv/slapd-soasi/bak/dump

2) Ainda no servidor que hoospeda o serviço de diretório, crie o seguinte script (/etc/bacula/scripts/delete_389_backup):

#!/bin/sh
# remove dump
rm -rf /var/lib/dirsrv/slapd-soasi/bak/dump
# chmod 755 /etc/bacula/scripts/delete_389_backup

Novamente, necessário modificar o  “slapd-soasi” por “slapd-xxx” onde “xxx” será o nome de sua instância slapd.

3) No bacula-dir.conf (servidor Bacula) necessário configurar os scripts pré e pós job de backup. Sseria algo parecido com o seguinte:

Job {
Name = "389"
Client = 389-fd
Write Bootstrap = "/var/lib/bacula/389.bsr"
**FileSet = "389"**
JobDefs = "default"
# create 389's dump
**Client Run Before Job = "/etc/bacula/scripts/make_389_backup"**
# delete the dump
**Client Run After Job = "/etc/bacula/scripts/delete_389_backup"**
}

O “FileSet” do respectivo job deve conter:

File = /var/lib/dirsrv/slapd-soasi/bak/dump

[Necessário modificar o  “slapd-soasi” por “slapd-xxx" onde “xxx” será o nome de sua instância slapd.]

Fonte: http://wiki.bacula.org/doku.php?id=application_specific_backups:389



Backup OpenLDAP com o Bacula

9 de Fevereiro de 2010, 0:00, por Software Livre Brasil - 0sem comentários ainda

Se você tem apenas uma configuração mais simples, utilizando apenas um backend, o comando slapcat irá produzir um dump completo para backup:

slapcat | gzip > backup.ldif

Para cenários mais elaborados (com múltiplos backends), o slapcat precisará do DN (distinguish name) de cada um dos backends locais.
Este script fará todo o trabalho:

#!/bin/bash

SLAPD_CONF=/etc/ldap/slapd.conf

# where to put files
BACKUP_PATH="/usr/local/backup/ldap_dumps"

# set more secure umask
umask 0027

if [ ! -r "${SLAPD_CONF}" ]; then
echo "Error: \"${SLAPD_CONF}\" cannot be read." >&2
exit 1
fi

dumpSuffix() {
suffix=${1//\"/}
number=$2
echo -n " - ${suffix}"
slapcat -b "${suffix}" | bzip2 > ${BACKUP_PATH}/dump.db${number}.ldif.bz2
echo "."
}

echo "searching for suffixes to dump"
# open slapd conf file and read line by line
dbNum=0
exec 3<${SLAPD_CONF}
while read line <&3; do # search for database declaration if echo $line | grep -e '^database' > /dev/null; then
(( dbNum++ ))
database=`echo $line | awk '{print $2}'`
# lets see if it's a bdb/hdb database (I don't care about anything else...)
if [ "$database" == "bdb" ] || [ "$database" == "hdb"]; then

# searching for suffix now
while [ -z $suffix ]; do
if read line <&3; then if echo $line | grep -e '^suffix' > /dev/null; then
# found suffix, now we can dump it somewhere
suffix=`echo $line | awk '{print $2}'`
dumpSuffix $suffix $dbNum
fi
fi
done
suffix=""
fi
fi
done
exec 3>&- # close file descriptor

exit 0

Fonte: http://wiki.bacula.org/doku.php?id=application_specific_backups:openldap



Compilando apenas o file daemon, storage daemon e o director.

9 de Fevereiro de 2010, 0:00, por Software Livre Brasil - 0sem comentários ainda

As opções de compilação, para seleção dos daemons a serem instalados, são as seguintes:

–enable-client-only (apenas compila o File Daemon)
–enable-build-dird  (também compilará o Director)
–enable-build-stored (também compilará o Storage Daemon)