Copias de seguridad de repositorios SVN

Programa escrito en VBScript para realizar copias de seguridad de repositorios Subversion.

Anuncios

Si utilizas TortoiseSVN quizá te interese este pequeño programa para hacer copias de seguridad periódicas de tus repositorios SVN. Está escrito en VBScript. Guárdalo en un archivo con la extensión vbs y ejecútalo cada vez que quieras hacer la copia. El resultado será un archivo cuyo nombre seguirá el formato 2008-01-30_19-30-00_repositorio.backup (fecha, hora y nombre del repositorio, terminado en la extensión backup).

' Fecha, en el formato AAAA-MM-DD.
Function ObtenerFecha

    Dim sAno   'As String
    Dim sMes   'As String
    Dim sDia   'As String
    Dim sAhora 'As Date

    sAhora = Now
    sAno = DatePart("yyyy", sAhora)
    sMes = DatePart("m", sAhora)

    If (Len(sMes) = 1) Then
        sMes = "0" & sMes
    End If

    sDia = DatePart("d", sAhora)

    If (Len(sDia) = 1) Then
        sDia = "0" & sDia
    End If

    Dim sResultado 'As String

    sResultado = sAno & "-" & sMes & "-" & sDia

    ObtenerFecha = sResultado

End Function

' Hora, en el formato HH-MM-SS.
Function ObtenerHora

    Dim sHora    'As String
    Dim sMinuto  'As String
    Dim sSegundo 'As String
    Dim sAhora   'As Date

    sAhora = Now
    sHora = DatePart("h", sAhora)

    If (Len(sHora) = 1) Then
        sHora = "0" & sHora
    End If

    sMinuto = DatePart("n", sAhora)

    If (Len(sMinuto) = 1) Then
        sMinuto = "0" & sMinuto
    End If

    sSegundo = DatePart("s", sAhora)

    If (Len(sSegundo) = 1) Then
        sSegundo = "0" & sSegundo
    End If

    Dim sResultado 'As String

    sResultado = sHora & "-" & sMinuto & "-" & sSegundo

    ObtenerHora = sResultado

End Function

' Creación de la orden a ejecutar.

Dim sPrefijo 'As String

sPrefijo = ObtenerFecha & "_" & ObtenerHora

Dim sOrden 'As String

sOrden = """%programfiles%svnbinsvnadmin.exe"" dump c:repos > c:" & sPrefijo & "_repos.backup"

' Ejecución

Dim WshShell 'As WScript.Shell

Set WshShell = CreateObject("WScript.Shell")

WshShell.Run "%comspec% /c " & sOrden, 0, True

En este caso en particular, se supone que el repositorio está en C:repos. El resultado acabará en C:. Cambia esas rutas por las que más te interesen.

2 comentarios en “Copias de seguridad de repositorios SVN”

  1. Hola, funciona perfecto, me creo el backup al instante, ahora, suponiendo que perdi el original y quiero usar el backup como hago ?

    1. Muy buenas, Isabel. Ya ni me acordaba de esta entrada, hace mucho que no actualizo el blog. Y también mucho que no hago este tipo de copias de seguridad.

      Si no recuerdo mal, es necesario ejecutar algo así:

      svnadmin load /ruta/del/repositorio < /ruta/de/la/copia.backup

      Pero no me hagas mucho caso, contrasta esto con la información que puedas encontrar en otras fuentes. Espero que te sirva como punto de partida.

      Ya me contarás.

Los comentarios están cerrados.