¿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:
#!/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 cd
en 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/directory
es la carpeta que desea respaldar (reemplácela según sea necesario). También se supone que pones el svnauto
script en formato /root
. Crea un registro y lo muestra al final. Un detalle más: el primero export
es 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