Instantáneas

Cada repositorio almacena instantáneas (snapshots) que son copias de seguridad de una o varias carpetas o un vólumen que reflejan su contenido en un determinado momento.

Listar instantáneas

En el Panel de control, para listar las instántaneas de un repositorio necesitas abrirlo introduciendo su contraseña en el menú Repos.

Cada instantánea está identificada por un ID y está etiquetada con el tipo de copia de seguridad que contiene y que puede ser: MySQL, PostgreSQL, BTRFS, ZFS o Docker.

A la derecha de cada instantánea encontrarás una botonera que permite ejecutar acciones sobre la misma:

  • Eliminar una instantánea.
  • Descargar el contenido de una instantánea comprimido en zip.
  • Restaurar una instantánea en un dispositivo conectado.

Línea de comandos

Para listar los snapshots disponibles de un determinado repositorio usa la opción snapshots de donbackup:

$ donbackup \
    --config /root/.donbackup/config.yml \
    --reponame example \
    snapshots

repository ad2bfe16 opened successfully, password is correct
ID        Time                 Host            Tags        Paths
-----------------------------------------------------------------------------------
28474dd6  2021-05-19 04:00:02  example              /mnt/btrfs
de7feab1  2021-05-20 04:00:01  example              /mnt/btrfs 
c713e3ea  2021-05-21 04:00:01  example              /mnt/btrfs
55504f6d  2021-05-22 04:00:01  example              /mnt/btrfs
-----------------------------------------------------------------------------------

Puedes listar los ficheros de una instántanea con el comando ls

$ donbackup \
    --config /root/.donbackup/config.yml \
    --reponame example \
    ls 55504f6d

Eliminar una instantánea

Para eliminar una instantánea pulsa en el botón Eliminar 🗑 correspondiente a la instantánea que quieres eliminar.

Línea de comandos

Para eliminar una instantánea necesitas conocer el ID de la copia de seguridad que puedes obtener con el comando snapshots de donbackup.

$ donbackup \
  --config .donbackup/config.yml \
  --reponame example \
  snapshots

repository 11b3bc71 opened successfully, password is correct
ID        Time                 Host                Tags        Paths
-----------------------------------------------------------------------------------------
5ded5cb3  2020-12-12 04:00:01  example  mysql       db.sql
a4e5d9e3  2021-01-31 03:00:01  example  mysql       db.sql
abe7b153  2021-02-26 03:00:01  example  mysql       db.sql
0c7b97a9  2021-03-27 03:00:02  example  mysql       db.sql
-----------------------------------------------------------------------------------------

Y para eliminar una instántanea por ID utiliza el comando forget:

$ donbackup \
  --config .donbackup/config.yml \
  --reponame example \
  forget f80cb090

repository 11b3bc71 opened successfully, password is correct
removed snapshot f80cb090

El comando forget elimina las referencias a los Blobs de datos, sin embargo no los elimina del repositorio. Para liberar el espacio ejecutarás el comando prune. Considera que en el caso de repositorios cuya información cambia con mucha frecuencia el comando prune hará un uso intensivo de CPU en el dispositivo por lo conviene ejecutarlo de forma planificada.

$ donbackup \
  --config .donbackup/config.yml \
  --reponame example \
  prune

repository 11b3bc71 opened successfully, password is correct
counting files in repo
building new index for repo
[0:35] 100.00%  2038 / 2038 packs
repository contains 2038 packs (46242 blobs) with 8.814 GiB
processed 46242 blobs: 0 duplicate blobs, 0 B duplicate
load all snapshots
find data that is still in use for 31 snapshots
[0:03] 100.00%  31 / 31 snapshots
found 46023 of 46242 data blobs still in use, removing 219 blobs
will remove 0 invalid files
will delete 87 packs and rewrite 14 packs, this frees 291.768 MiB
[0:00] 100.00%  14 / 14 packs rewritten
counting files in repo
[0:05] 100.00%  1939 / 1939 packs
finding old index files
saved new indexes as [92b9e2b3]
remove 41 old index files
[0:01] 100.00%  101 / 101 packs deleted
done

Es posible ejecutar los comandos forget y prune de forma conjunta:

$ donbackup \
  --config .donbackup/config.yml \
  --reponame example \
  forget f80cb090 --prune

Eliminar instantáneas en base a una política

Dentro del panel del repositorio pulsa el icono Limpiar 🗑. Puedes eliminar instantáneas del repositorio en base a una política de retención: manteniendo n copias diarias, semanales y mensuales.

El proceso compacta el repositorio y libera el espacio ocupado por las instantáneas y al finalizar recibirás un correo informativo con el resultado de la operación.

Línea de comandos

$ donbackup \
  --config .donbackup/config.yml \
  --reponame example \
  forget \
  --keep-daily 7 \
  --keep-weekly 5 \
  --keep-monthly 12

repository 11b3bc71 opened successfully, password is correct
Applying Policy: keep the last 7 daily, 5 weekly, 12 monthly snapshots

Tras eliminar las instantáneas es necesario liberar el espacio compactando el repositorio utilizando el comando prune.

$ donbackup \
  --config .donbackup/config.yml \
  --reponame example \
  prune

Descargar en tar

Para generar un enlace de descarga de una instantánea pulsa en el botón Descargar que aparece en la parte derecha de la instantánea.

El tiempo que tardará Donbackup en generar el enlace dependerá del tamaño de la copia de seguridad. Al finalizar, recibirás un correo electrónico con un enlace de descarga y el Panel de control te indicará que la descarga está disponible con una flecha verde:

Restaurar una instántanea

Restaurar →