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.
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
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/