98 votos

GIT como una herramienta de copia de seguridad (soy un tonto persona?)

Así que yo estaba en la ducha de esta mañana pensando en cosas, y he tenido una idea que puede ser terrible o puede ser brillante, no estoy seguro.

En un servidor, instalar git

cd /
git init
git add .
git commit -a -m "Yes, this is server"

A continuación, obtener /.git/ a seleccione una unidad de red (SAN, NFS, Samba, lo que sea) o de disco diferente. El uso de una tarea en el cron cada hora/día, etc. para actualizar los cambios. El .git directorio contiene una versionada copia de todos los archivos del servidor (excluyendo el inútil o complicados como /proc, /dev etc.)

Para un no-importante servidor de desarrollo en el que no quieren la molestia y el costo de la instalación en un adecuado sistema de copia de seguridad, y donde las copias de seguridad sólo sería por conveniencia (I. E. no nos necesita para copia de seguridad de este servidor, pero se ahorraría algo de tiempo si las cosas iban mal), este podría ser una válida solución de copia de seguridad o simplemente caer en un montón de caca?

85voto

Eric Noob Puntos 531

No eres un tonto persona. El uso de git como un mecanismo de copia de seguridad puede ser atractivo, y a pesar de lo que otras personas han dicho, git funciona bien con archivos binarios. Leer en esta página, desde el Git Libro para obtener más información sobre este tema. Básicamente, desde git no está utilizando un delta mecanismo de almacenamiento, realmente no importa lo que sus archivos (pero la utilidad de git diff es bastante bajo para archivos binarios con un stock de configuración).

El mayor problema con el uso de git para la copia de seguridad es que no conserva la mayoría de los metadatos del sistema de ficheros. Específicamente, git no de registro:

  • los grupos de archivos
  • los propietarios de los archivos
  • los permisos de archivo (que no sea "es este ejecutables")
  • los atributos extendidos

Puede resolver esto a través de herramientas de escritura para registrar esta información de manera explícita en su repositorio, pero puede ser difícil conseguir este derecho.

Una búsqueda en Google para git copia de seguridad de los metadatos de los rendimientos de un número de resultados que parecen ser vale la pena leer (incluyendo algunas herramientas que ya intento de compensar las cuestiones que he planteado aquí).

etckeeper fue desarrollado para backuping hasta /etc y soluciona muchos de estos problemas.

20voto

stew Puntos 5826

No lo he usado, pero usted puede buscar en bup , que es una herramienta de copia de seguridad basado en git.

12voto

Stone Puntos 4701

Puede ser una válida solución de copia de seguridad, etckeeper se basa en esta idea. Pero mantener un ojo en el .directorio de git persmissions de lo contrario, empujando a /etc/shadow puede ser readble en el .directorio de git.

11voto

Rob Wells Puntos 21714

Mientras que técnicamente se puede hacer esto yo pondría dos advertencias en contra de ella:

1, Usted está utilizando una versión de código fuente del sistema de control para datos binarios. Por tanto, puedes usarlo para algo que no fue diseñado para.

2, me preocupo acerca de su proceso de desarrollo si usted no tiene un proceso, la documentación o automatizado) para la construcción de una nueva máquina. Lo que si te golpearon comprar un autobús, que iba a saber qué hacer y qué fue importante?

La recuperación de desastres es importante, sin embargo, su mejor para automatizar (script) la instalación de un nuevo desarrollo de cuadro de copias de seguridad de todo. Asegúrese de usar git para la secuencia de comandos/documentación, pero no para cada archivo en un ordenador.

4voto

FMaz008 Puntos 229

Así que no es una mala idea, pero creo que hay 2 banderas rojas para ser criado:

  • Si el disco duro falla, vas a perder todo si no estás empujando a su compromiso con el otro servidor o la unidad. ( Evento si no tienes un plan para ello, prefiero mencionar. )

... pero aún así, puede ser una buena copia de seguridad de los daños relacionados con las cosas. O como usted dijo, si la .git/ carpeta está en otro lugar.

  • Esta copia de seguridad siempre va en aumento en tamaño. No hay restos de poda o de rotación o cualquier cosa de forma predeterminada.

... De modo que usted puede necesitar decirle a su cronjob para añadir etiquetas y, a continuación, asegúrese de que se comprometen a que no están etiquetados será limpiada.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: