Backup Subversion

Publicado por Augusto Hagiro Pascutti 19/09/2008

[ Hits: 10.453 ]

Homepage: www.augustopascutti.com

Download svn_backup.sh




Script para fazer backup de múltiplos repositórios subversion em arquivos GZ separados .

  



Esconder código-fonte

#!/bin/bash
#
# #version 0.1
# @descr Script de backup dos repositorios subversion
# @author Augusto Pascutti <augusto.hp@gmail.com>

# -------------------------------------------------------
# Config
# -------------------------------------------------------
DIR_SVN=/usr/lib/svn/
DIR_TMP=/tmp/
LOG_FILE=/var/log/svn_backup.log

# -------------------------------------------------------
# functions
function e {
    echo $*;
    echo "$*" >> ${LOG_FILE};
}

# -------------------------------------------------------

if [ ! -d $DIR_SVN ]; then
    e "svn_backup: Diretorio svn invalido !";
fi;

if [ ! -d $DIR_TMP ]; then
    e "svn_backup: Diretorio temporario invalido !";
fi;

e `date`;
e "Iniciando backup dos repositorios ....";
REPOS="";
for repositorio in `ls "${DIR_SVN}"`; do
    TEST_PATH="${DIR_SVN}${repositorio}";
    echo -n "Verificando '${TEST_PATH}' ... ";
    if [ ! -d "${TEST_PATH}" ]; then echo " non-dir"; continue; fi;
    echo -n " verificando svn ... ";
    if [ ! -d "${TEST_PATH}/db" ]; then echo "non-svn"; continue; fi;
    echo "ok";
    REPOS="${REPOS} {$repositorio}";
    NAME_DUMP="${DIR_TMP}${repositorio}.svn.dump";
    NAME_FINAL="${DIR_TMP}${repositorio}.svn.dump.gz";
    echo -n "    Repo: ${repositorio} -> dump ";
    svnadmin dump -q "${TEST_PATH}" > "${DIR_TMP}${repositorio}.svn.dump" > /dev/null 2>> ${LOG_FILE};
    if [ ! $? -eq 0 ]; then echo "[error]"; continue; fi;
    echo -n "-> tarball ";
    tar -czf "${NAME_FINAL}" "${NAME_DUMP}" > /dev/null 2>> ${LOG_FILE};
    if [ ! $? -eq 0 ]; then echo "[error]"; continue; fi;
    echo -n "-> limpando";
    rm -f "${NAME_DUMP}" > /dev/null 2>> ${LOG_FILE};
    if [ ! $? -eq 0 ]; then echo "[error]"; continue; fi;
    echo "-> ok";
done;

Scripts recomendados

Backup dos arquivos e diretórios de um servidor com XMAIL e Iptables para um servidor central de Bac

Seletor de emojis em yad

Script de compilação automatica do GCC

Balanceamento de Carga e Alta Disponibilidade usando IPTABLES

Adição automática dos repositórios do Google Chrome, Google Talk Plugin, Google Earth, Dro no Ubuntu


  

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