Haciendo bakups con Restic de una forma sencilla

Hace poco comenté que había empezado a utilizar Restic para hacer copias de seguridad. Es un sistema muy bueno y versátil pero requiere ejecutar comandos bastante largos y complejos para un usuario básico. Por suerte existen varias herramientas para facilitar el uso de Restic; una de ellas es Autorestic.

El proceso de instalación no puede ser más sencillo. Ejecutas el siguiente comando como root y ya lo tendrás instalado. Obviamente necesita que tengas instalado restic para poder funcionar.

wget -qO - https://raw.githubusercontent.com/cupcakearmy/autorestic/master/install.sh | bash

Autorestic tiene varios comandos bastante sencillos que dependen de una configuración que debemos hacer antes de nada en el fichero $HOME/.autorestic.yml con un formato más o menos así:

version: 2

locations:
  documentos:
    from: /home/usuario/Documentos
    to: local
    copy:
      local:
        - nas-server
    cron: '0 10 * * 6' # Every Saturday at 10:00
    forget: prune
    options:
      forget:
        keep-last: 3

backends:
  local:
    type: local
    path: /mnt/backup
    key: 'caminante no hay camino se hace camino al andar'
  nas-server:
    type: sftp
    path: my-nas:/share/homes/user/CopiaSeguridad
    key: 'al andar se hace camino y al mirar la vista atras'

En el caso de querer usar un backend de tipo SFTP tenemos que hacer una configuración previa creando un alias en .ssh/config y habilitando el login por ssh medante llave de cifrado.

Como se ve en el ejemplo debemos configurar dos grupos: las localizaciones de las que queremos hacer copias de seguridad y los backendns donde queremos guardar estas copias. Esto nos permite todas las combinaciones que se nos ocurran. En el ejemplo estoy haciendo una copia cifrada de los documentos en otro disco en local y luego copio ese mismo backup por sftp a un servidor de discos de la red. Este proceso se va a hacer automáticamente cada sábado a las 10 de la moñana y vamos a guardar un histórico de tres copias. El mismo sistema se va a encargar de borrar las copias antiguas DESPUÉS de hacer la nueva copia.

Para hacer que ejecute el cron de forma automática añadimos la siguiente línea a nuestro crontab mediante crontab -e

*/5 * * * * autorestic -c $HOME/.autorestic.yml --ci cron

Este comando verificará, cada 5 minutos, si tiene que ejecutar alguna tarea definida en el fichero de configuración indicado. Si es la hora indicada, realizará el backup configurado arriba.

Una vez tenemos todas las piezas configuradas, antes de lanzarnos a hacer el primer backup, que tardará bastante porque va a copiar todos los datos, ejecutamos:

autorestic exec -av -- init

para inicializa el repo/s que hayamos configurado.

Mediante el comando

autorestic exec -av -- snapshots

podemos consultar las copias que se han realizado y que tenemos guardadas.

En cualquier momente podemos lanzar la ejecución de todos los backups mediante el comando:

autorestic backup -a

La documentación del proyecto la podéis encontrar aquí