Scripting

Puedes ejecutar donbackup en la consola de comandos o en shellscripts.

Instalar y configurar

Instala donbackup

Descarga el binario y otorgale permisos de ejecución.

$ curl \
  -sL https://donbackup.com/releases/latest/donbackup_latest_linux_amd64 \
  --output /usr/local/sbin/donbackup
$ chmod +x /usr/local/sbin/donbackup

Obtén un Token

Para obtener un token de acceso haz una llamada al API proporcionando el usuario y contraseña de la cuenta de Donbackup como parámetros.

$ curl -H "X-Donbackup:donbackup-client" 	\
	 -H "Content-Type:application/json" \
	 --data "{\"username\": \"USERNAME\", \"password\": \"PASSWORD\"}" \
	 https://donbackup.com/api/v1/admin/auth 2>/dev/null \
	 | jq '.result | .raw'

Obtendrás como resultado un JSON web token (JWT) que te permitirá gestionar los repositorios. Este token contiene información acerca de la duración, el repositorio o repositorios a los que tiene acceso y los distintos permisos que tiene sobre los mismos.

Tokens →

Crea el fichero de configuración

El fichero de configuración de donbackup es útil para almacenar el token y las contraseñas de acceso a los repositorios.

En el caso de no existir fichero de configuración donbackup leerá las variables de entorno ${DONBACKUP_TOKEN} y ${DONBACKUP_PASSWORD} que sirven para almacenar el token de acceso y la contraseña del repositorio respectivamente.

En el caso de no conseguir acceso con estos métodos donbackup solicitará la contraseña en la línea de comandos.

Crea el fichero de configuración para donbackup:

$ mkdir ~/.donbackup
$ cat << EOF > ~/.donbackup/config.yml
---
server: https://a.donbackup.com
token: TOKEN
repos:
- name: REPONAME
  password: BASE64_PASSWORD
EOF
$ chmod 600 ~/.donbackup/config.yml

Fichero de configuración →

Backup / Salvaguardar

Backup de un volumen o carpeta

$ donbackup \
  --config /root/.donbackup/config.yml \
  --reponame REPONAME \
  backup /var/www/html

Backup de una base de datos MySQL

$ mysqldump --opt -uroot -pMYSQL_ROOT_PASSWORD --all-databases --force | \
  donbackup \
    --config /root/.donbackup/config.yml \
    --reponame REPONAME \
    backup --stdin --stdin-filename db.sql

Programar backups en crontab

En sustitución del servicio donbackupd puedes utilizar el servicio de cron del dispositivo para programar las tareas de backup de forma periódica.

Edita el crontab con crontab -e para añadir la tarea de backup:

@hourly /usr/local/sbin/donbackup --config /root/.donbackup/config.yml --reponame REPONAME backup /var/www/html

Instantáneas (Snapshots)

Cada tarea de backup genera una instantánea o snapshot identificada por un ID.

$ 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
-----------------------------------------------------------------------------------

Eliminar snapshot por ID

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

Restaurar

$ donbackup \
  --config .donbackup/config.yml \
  --reponame example \
  restore 6e3307d6 --include wp-content --exclude cache --target ./restored/ 

restoring <Snapshot 6e3307d6 of [/var/www/html] at 2021-04-29> to ./restored/