Backup de Repositórios Subversion

Publicado por Eduardo Martins 01/08/2007

[ Hits: 6.803 ]

Homepage: http://www.emartins.org

Download backup_subversion.sh




Este script efetua o DUMP (backup da base de dados) dos repositórios do subversion e os envia para uma máquina windows com uma pasta compartilhada.

Ele salva o backup em uma pasta para cada dia da semana e cria um arquivo tar.bz2 (também para cada dia da semana).

Você pode modificar o script para, por exemplo, gravar em um CD/DVD, basta modificar as linhas onde o arquivo é copiado para a pasta na rede.

  



Esconder código-fonte

#!/bin/sh

#--------------------------------------------------------------
#  Script para executar o dump dos repositorios do subversion
#  copia para uma pasta compartilhada na rede
#
#  autor: Eduardo Martins <martins.rs@gmail.com>
#--------------------------------------------------------------

# Variaveis de Backup
USERNAME=guest;
PASSWORD=guest;
DESTINO=//10.0.0.1/backup;
PTO_MONTAGEM=/mnt/backup;

#Onde Gravar o Backup
ID_PASTA_BKP=$(date +%u);
PASTA_BKP[1]=2;
PASTA_BKP[2]=3;
PASTA_BKP[3]=4;
PASTA_BKP[4]=5;
PASTA_BKP[5]=6;

HOJE=$(date +%a);
TMP_DIR=/tmp

#Subversion
REPO_DIR=/subversion/repositorios;
DUMP_DIR=/tmp/subversion;

#monta unidade rede
mount -t smbfs -o username=$USERNAME,password=$PASSWORD $DESTINO $PTO_MONTAGEM ;

#apaga os dumps antigos
rm -fr $DUMP_DIR/*.dump;

#comeca os dumps dos repositorios
echo "Efetuando DUMP dos Repositorios";

#lista o diretorio dos repositorios
for files in `ls $REPO_DIR`; do
   #lista somente os diretorios
   for dir in `ls -o $REPO_DIR | grep ^d`; do
      #compara os nomes para pegar apenas o nome do repositorio
      if [ `basename $dir` == "$files" ]; then
         #exclui o diretorio .
         if [ "$dir" != "./" ] ; then
            if [ "$dir" != "$REPO_DIR" ]; then
               REPOSITORIO=`basename "$dir"`;
               echo "Repositorio: $REPOSITORIO";
               svnadmin dump $REPO_DIR/$REPOSITORIO > $DUMP_DIR/$REPOSITORIO.dump;
               echo "--"
               break;
             fi
         fi
      fi
   done
done

echo "DUMP Concluido...";

echo "";

#compacta os dumps
echo "Compactando arquivos...";
tar cfj $TMP_DIR/subversion_bkp_$HOJE.tar.bz2 $DUMP_DIR;

#copia para a maquina windows
echo "Copiando arquivo...";
cp $TMP_DIR/subversion_bkp_$HOJE.tar.bz2 $PTO_MONTAGEM/${PASTA_BKP[$ID_PASTA_BKP]};

echo "Copia Concluida!";

#desmonta unidade rede
umount $PTO_MONTAGEM;

echo "";
#remove os arquivos criados
echo "removendo arquivos temporarios...";
rm -fr $TMP_DIR/subversion_bkp_$HOJE.tar.bz2;

echo "";
echo "Backup Terminado...";

#Desfazer variaveis
unset USERNAME;
unset PASSWORD;
unset DESTINO;
unset PTO_MONTAGEM;
unset ID_PASTA_BKP;
unset PASTA_BKP;
unset HOJE;
unset TMP_DIR;
unset REPO_DIR;
unset DUMP_DIR;
unset REPOSITORIO;
unset files;
unset dir;

Scripts recomendados

Reconexão automática para internet ADSL

Bloqueando o uso do UltraSurf

Administração do Samba + LDAP - ainda para terminar

Validação de endereços IPv4

Configuração do Mysql no Suse, quando ocorre o seguinte erro: "ERROR 2002: Can't connect to local My


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts