2010-03-02 11 views

Respuesta

11

Consulte el capítulo Repository Maintenance en The Book sobre cómo sacar un volcado del depósito. Luego use un servicio temporizado (at o cron por ejemplo, o el muy agradable programador de tareas en el sistema operativo Windows, depende del sistema de su servidor) para ejecutar el volcado todas las noches. Hecho.

+0

dependiendo del tamaño del repositorio, un volcado no es el mejor método para hacerlo, ya que crear un volcado y restaurar un volcado llevará algo de tiempo. Debe usar svnadmin hotcopy –

+0

el enlace a SVNBook va a la versión obsoleta – bahrep

1

Acabo de escribir un pequeño guión para hacer el trabajo. La primera ejecución realiza una copia de seguridad completa, cada ejecución adicional solo hace un incremento con respecto a las últimas confirmaciones durante la última copia de seguridad. los archivos de copia de seguridad obtendrán el número de la última revisión para rastrear el procedimiento.

Configure los ajustes correctos para

WORKDIR=path to where this script resists

SVN_REPO_LOCATION=path to where the repository resists on hd

BACKUPDIR=path to where the backup should goes to

SVN_LOACTION=root location which you use in your svn command

y añadir la secuencia de comandos de tarea programada, eso es todo.

#!/bin/bash 
WORKDIR=/home/user/svnbackup 
SVN_REPO_LOCATION=/opt/svn 
BACKUPDIR=./backup 
SVN_LOACTION=https://mysvn.server.com/svn 

cd $WORKDIR; 
CURRENT_VERSION=`svn info $SVN_LOACTION | grep Revision | awk '{print $2}'` 
LAST_VERSION=`cat svn.version 2>/dev/null` 
mkdir -p $BACKUPDIR; 
if [ "$LAST_VERSION" = "" ] 
then 
     echo fullbackup; 
     svnadmin dump -q $SVN_REPO_LOCATION > $BACKUPDIR/svn_backup_$CURRENT_VERSION.dump; 
     echo $CURRENT_VERSION > svn.version; 
else 
     if [ "$LAST_VERSION" == "$CURRENT_VERSION" ] 
     then 
       echo backup not necessary; 
     else 
       echo incremental; 
       svnadmin dump -q $SVN_REPO_LOCATION -r$LAST_VERSION:$CURRENT_VERSION --incremental > $BACKUPDIR/svn_backup_$CURRENT_VERSION.dump; 
       echo $CURRENT_VERSION > svn.version; 
     fi 
fi 
Cuestiones relacionadas