GOOGLE ADS

martes, 19 de abril de 2022

Uso de Subversion para copias de seguridad de uso general

¿Es posible utilizar Apache Subversion (SVN) como herramienta de copia de seguridad de propósito general? (Como una especie de alternativa de rsync ).


Solución del problema

Para usar SVN como copia de seguridad en Linux, haga lo siguiente:

  • Cree un repositorio vacío.

  • Consulte el repositorio vacío en el árbol de carpetas que desea respaldar.

  • Utilice el siguiente fragmento de código (svnauto). Debe reemplazar "myuser" y "mypassword" con credenciales válidas para su repositorio:

  •  #!/bin/sh 
    svn status --profundidad=infinito --username=miusuario --password=micontraseña > /tmp/svnauto_tmp.list
    cat /tmp/svnauto_tmp.list | grep '^?' | sed -e 's/^? /svn add --profundidad=infinito --force --username=miusuario --password=micontraseña "/g' -e 's/$/@"/g' | sh
    gato /tmp/svnauto_tmp.list | grep '^!' | sed -e 's/^! /svn delete --username=miusuario --password=micontraseña "/g' -e 's/$/@"/g' | sh
    rm -f /tmp/svnauto_tmp.list
    svn actualizar. --username=miusuario --password=micontraseña
    svn commit --username=miusuario --password=micontraseña --message "Copia de seguridad automática"

    El script anterior agregará/eliminará y actualizará cualquier archivo y subdirectorio dentro del directorio actual. Para usarlo simplemente cden la carpeta que desea respaldar (que debe ser una copia de trabajo, por supuesto), y ejecute svnauto. Tenga en cuenta que necesita tener grep y sed instalados en su sistema, y ​​crea un archivo temporal en /tmp. Se puede usar desde un trabajo cron para la confirmación nocturna, usando el siguiente script cron:

    #!/bin/sh
    export LANG=en_US.UTF-8 && cd /my/directory && echo Starting backup $(date) > /root/backup_log.txt && /root/svnauto >> /root/backup_log.txt 2>&1 && echo Finished backup. >> /root/backup_log.txt && cat /root/backup_log.txt

    Este script cron asume que /my/directoryes la carpeta que desea respaldar (reemplácela según sea necesario). También se supone que pones el svnautoscript en formato /root. Crea un registro y lo muestra al final. Un detalle más: el primero exportes necesario para que svn encuentre el idioma adecuado. Es posible que deba ajustar esta línea a su propio idioma local para que funcione.

    No hay comentarios.:

    Publicar un comentario

    Flutter: error de rango al acceder a la respuesta JSON

    Estoy accediendo a una respuesta JSON con la siguiente estructura. { "fullName": "FirstName LastName", "listings...