bds – backup de sistema …

… que no es lo más original del mundo como nombre pero me estoy acostumbrando a los términos cortos. Funcionan mejor con mi memoria.

Tomando la entrada anterior sobre el tema he escrito un script en bash, y el consiguiente paquete Debian, que automatiza las copias de seguridad empleando attic y permite que una máquina tenga una copia propia en local y sirva, además, como repositorio remoto de otras. Si hay espacio libre he visto que es bastante resultón como sistema (y seguro además).

El proyecto está alojado en mi servidor Git en esta dirección. Se puede construir el paquete Debian, como he dicho, que se encarga en la fase de configuración de crear un usuario en el sistema para recibir las copias, inicializar un repositorio local cifrado y añadir tareas para salvar los archivos a diario.

La técnica de deduplicado de datos que utiliza atttic consigue que no se desperdicie espacio, aunque me he visto en apuros en uno de los servidores porque estaba muy cerca de agotarlo todo. En ese caso en concreto he indicado que la copia sea siempre remota con lo que el problema está resuelto hasta que pueda añadir espacio al disco.

Creo que contiene suficiente documentación pero por si acaso mencionaré algunos detalles:

  • Cuando se crea un repositorio remoto cifrado la clave del mismo permanece en la máquina local por lo que el administrador del servidor que la recibe no tiene acceso a ella. Esto me ha permitido emplear máquinas de ámbitos diferentes para contener copias ajenas con tranquilidad.
  • attic necesita algo más de flexibilidad para incluir y excluir archivos. El script permite definir dos conjuntos en sendos ficheros pero las expresiones regulares no son todo lo finas que debieran.
  • El usuario que realiza la copia de seguridad tiene que tener permisos administrativos para ello. La cuenta que el paquete crea en el sistema sólo sirve para recibir copias, no para realizarlas.
  • El script también puede realizar volcados de información previos a la copia en un directorio ya incluído en ella:
    • Lista de paquetes disponibles usando dpkg –get-selections.
    • Volcados de bases de datos MySQL si se le proporcionan credenciales.
    • Volcados de directorios LDAP de la misma forma.
  • Ya que el script utiliza run-parts añadir o quitar tareas es algo muy sencillo. En la instalación con poco espacio en disco que he mencionado, por ejemplo, he tenido que añadir un volcado de Drupal completo en lugar de lo anterior.

A pesar de todo ésto las pruebas que he podido realizar de recuperación de datos son escasas. Estoy confiando demasiado en el programa attic pero por lo que he podido leer por ahí es bastante fiable.

Buscaré tiempo y algunas máquinas virtuales para probarlo …