2008-09-15 35 views

Respuesta

9

me encontré con este artículo para ser una descripción bastante fresco de usar SVN para copia de seguridad de su directorio principal, y más:

uso de Subversion para copia de seguridad de mis cajas de Linux. Con algo de creatividad menor, cubre fácilmente:

  • instantáneas diarias y copias de seguridad externas.
  • Fácil adición y eliminación de archivos y carpetas.
  • Seguimiento detallado de las versiones de archivos.

También permite una serie de características de bonificación:

  • correos electrónicos de registro regular para mantener un registro de la actividad del sistema de archivos a través de ganchos de eventos de Subversion.
  • Los usuarios pueden solicitar el pago de sus carpetas personales desde cualquier revisión del depósito.
  • Los servidores nuevos o de reemplazo se pueden configurar con algunos comandos svn checkout.

Fuente: http://www.mythago.net/svn_for_backup.html

También encontrado this article que muestra un ejemplo de versiones de su directorio personal. Esto le permite acercar su entorno al revisar su directorio de inicio en una máquina nueva. Solía ​​hacer algo similar y me pareció muy útil.

+6

El enlace no funciona "mythago.net/..." –

+2

Se ha cambiado el vínculo al enlace de la máquina del tiempo de Internet. – GeneSys

+0

Me gustaría señalar que está demasiado anticuado. – bahrep

0

He utilizado CVS como sustituto de fantasma, así que no veo por qué no.

Lo mejor es marcar una línea de base: puede cambiar la administración de máquinas.

Esto funciona mejor en Unixes que en Windows, obviamente.

0

Lo que me desanimó de esa idea es que, para uso general, cualquier información binaria se copiará cada vez que cambie, mientras que los contenidos de texto de los sistemas SCM se pueden actualizar fácilmente en forma de dif.

Así que podría hacerlo, solo tenga en cuenta que puede que no desee usarlo para administrar cosas como repositorios de fotos si realiza mucha edición.

Lo bueno de las soluciones de copia de seguridad más generales (por ejemplo, Time Machine) es que pueden acumular varios cambios binarios después de un tiempo para ahorrar espacio. No estoy seguro de lo fácil que sería hacer en SVN o git o mercurial.

4

Una cosa a tener en cuenta cuando se utiliza SVN como copia de seguridad para archivos binarios es que SVN doblará el tamaño de sus archivos, porque mantiene una copia local de cada archivo (en el archivo .svn/text-base) .

Aparte de eso también uso SVN para una copia de seguridad. Simplemente agregue todos los archivos y luego confirme mediante script.

1

Una cosa que me molestaría mucho son las carpetas '.svn', que svn coloca en cada carpeta que rastrea.

Parecen molestos, cuando copia una carpeta, debe recordar no copiarlos (o su caja de arena puede estar irritada) y es mucho más difícil grep a través de un montón de carpetas, ya que a menudo hay una gran cantidad de hits en las carpetas de recursos .svn.

Me gusta la idea de utilizar un control de fuente para controlar su entorno. Pero personalmente no elegiría svn para este trabajo. Me gustaría algo como git. Pero eso es probablemente solo yo ...

0

El uso de SVN para copias de seguridad puede funcionar. Sin embargo, con el tiempo puede ser difícil eliminar revisiones antiguas que no son necesarias. Digamos que solo quería conservar 30 o 60 días de copias de seguridad. SVN no proporciona una manera fácil de eliminar cualquier historial anterior a X días. Si no tiene una forma de purgar el historial antiguo, eventualmente ejecutará su unidad de copia de seguridad sin espacio.

Aquí es una cita de la orden SVN Book on the svndumpfilter:

Desde Subversion almacena todo en un sistema de base de datos opaco, intentar ajustes manuales es imprudente, si no del todo difícil. Y una vez que los datos han sido almacenados en su repositorio, Subversion generalmente no proporciona una manera fácil para eliminar esos datos. [13]

[13] Eso, por cierto, es una característica, no un error.

He encontrado unison a ser una mejor opción que la SVN para una alternativa rsync.

0

Copia de seguridad/etc con control de código fuente puede ser de gran ayuda cuando desee revertir un cambio que orine su sistema, experimente con cambios o lleve cambios de un servidor a otro. Pero la multitud de directorios .vv de subversion pueden interponerse en el camino, no solo al realizar búsquedas, pero en algunos casos, como las carpetas * .d, los sistemas mal diseñados pueden interpretar que las carpetas .svn contienen datos de configuración.

Ahora prefiero usar Mercurial para realizar copias de seguridad/etc ya que coloca una sola carpeta .hg en/etc. Para una copia de seguridad real y no solo para el control de la versión, debe copiar esa carpeta .hg en otro lugar.

4

Como una copia de seguridad de "propósito general", diría que probablemente no sea la mejor idea, principalmente por las razones dadas por otros (un montón de carpetas sobrantes y espacio en el disco desperdiciado). Si solo quiere tener copias de seguridad, una vez más, diría que probablemente haya mejores opciones, según sus necesidades, por ejemplo: ¿necesita mantener cada versión de cada archivo, o bastarían ciertas instantáneas de sus datos?

Sin embargo, en mi oficina, tenemos un pequeño equipo de 6 personas que trabajan con archivos compartidos (por ejemplo, manuales de políticas y procedimientos, formularios de registro, etc.). Gran parte del tiempo, los miembros del equipo trabajarán de forma remota (desde casa o mientras viajan) y, a menudo, sin conexión. En lugar de utilizar una configuración central de carpetas compartidas, utilizamos SVN para dar a cada persona una copia de trabajo completa de la carpeta en la que pueden trabajar y consultar y sincronizar siempre que sea posible. Esto mata a dos pájaros de un tiro: todos pueden acceder y editar los archivos incluso cuando están fuera de línea, además de que nos da una gran redundancia en nuestras copias de seguridad. Si mi computadora portátil catches on fire, no es ninguna molestia porque puedo echarle un vistazo a otra copia (obviamente en otra computadora). Si el servidor se incendia, tendremos las copias de seguridad del repositorio para restaurar.Si el servidor Y todas las copias de seguridad de repo se incendian, todo lo que ha perdido son versiones antiguas de archivos. La única manera de que pierda datos actuales es si el servidor, sus copias de seguridad repo y cada una de las computadoras que tiene un pago se incendian misteriosamente.

Como algunas personas han dicho, SVN nunca eliminará la información del repositorio, lo que significa que si solo quieres guardar las copias de seguridad durante 60 días, entonces, bueno, no puedes. Esto no es exactamente cierto. Mediante el uso de export, dump y import puede eliminar efectivamente las versiones anteriores de los archivos. No es bonito, pero es posible.

1

Utilizo SVN para hacer una copia de seguridad de mi computadora, y también para sincronizar mi computadora portátil y mi escritorio. Pero tiene los problemas mencionados en las respuestas anteriores, principalmente la duplicación del uso del disco. También siento que el exceso de archivos y el proceso de SVN verificando constantemente mi HD para detectar cambios hace que mi máquina sea más lenta.

Me gustaría resaltar, sin embargo, que SVN es excelente para sincronizar diferentes máquinas, y también tiene la ventaja de poder consultar un archivo en cualquier lugar si lo necesita, incluso lo hago en mi navegador a través de la interfaz web, a veces.

En resumen, tengo sentimientos encontrados sobre el uso de SVN para la copia de seguridad de propósito general. Pero si lo hace, recomiendo no para almacenar bibliotecas como películas, fotos y música, porque tienden a ser grandes (sufriendo enormemente por el uso del espacio duplicado) e inmutables; no es necesario un sistema de control de versiones. para eso, porque en las raras ocasiones en que usted cambia un archivo, generalmente no necesita las versiones anteriores (y SVN no es bueno para hacer/almacenar diffs de archivos binarios, guarda toda la nueva versión del archivo). Entonces, a menos que se pueda adaptar SVN (una intención mía del proyecto a largo plazo) para estos casos, sugiero usar un método alternativo para hacer copias de seguridad de este tipo de archivos.

+0

Por cierto, estoy reemplazando mi laptop de 500GB por una laptop SSD de 256GB, y tendré que replantear mi estrategia de respaldo ... mis datos (con los archivos SVN) simplemente no encajan en la nueva HD. – JoaoPSF

0

Esta declaración es incorrecta JoaoPSF:

(y SVN no es bueno en la fabricación/almacenamiento diferenciaciones de archivos binarios, se ahorra toda la nueva versión del archivo)

Ver esta cita de How does Subversion handle binary files:

Tenga en cuenta que si un archivo es binario no afecta a la cantidad de espacio utilizado repositorio para almacenar los cambios en ese archivo, ni afecta a la cantidad de tráfico entre el cliente y el servidor. Para propósitos de almacenamiento y transmisión, Subversion usa un método diferente que funciona igual de bien en archivos binarios y de texto; esto no tiene ninguna relación con el método de difusión utilizado por el comando svn diff.

0

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

  1. Crear una cesión temporal vacía.
  2. Verifique el repositorio vacío en el árbol de carpetas del que desea hacer una copia de seguridad.
  3. Utilice el siguiente fragmento de código (svnauto). Usted tiene que reemplazar "miUsuario" y "micontraseña" con credenciales válidas para su repositorio:
 
    #!/bin/sh 
    svn status --depth=infinity --username=myuser --password=mypassword > /tmp/svnauto_tmp.list 
    cat /tmp/svnauto_tmp.list | grep '^?' | sed -e 's/^?  /svn add --depth=infinity --force --username=myuser --password=mypassword "/g' -e 's/$/@"/g' | sh 
    cat /tmp/svnauto_tmp.list | grep '^!' | sed -e 's/^!  /svn delete --username=myuser --password=mypassword "/g' -e 's/$/@"/g' | sh 
    rm -f /tmp/svnauto_tmp.list 
    svn update . --username=myuser --password=mypassword 
    svn commit --username=myuser --password=mypassword --message "Automatic backup" 

El script anterior añadir/eliminar y actualizar todos los archivos y subdirectorios dentro del directorio actual.Para usarlo simplemente cd en la carpeta que desea hacer una copia de seguridad (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 utilizar de una tarea programada para cometer noche, utilizando la siguiente secuencia de comandos cron:

guión
#!/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 cron supone que /my/directory es la carpeta que desea hacer copia de seguridad (reemplace según sea necesario). También asume que pone el script svnauto en /root. Crea un registro y lo muestra al final. Un detalle más: se necesita el primer export para que svn encuentre el idioma adecuado. Es posible que deba ajustar esta línea a su propio idioma local para que funcione.

1

También podría considerar bup - Sistema de copia de seguridad de archivos altamente eficiente basado en el formato del paquete de archivos git. Se basa en git's en la forma en que almacena datos, que es muy eficiente para almacenar archivos y sus diferencias.

Cuestiones relacionadas