Backup con Borg

2024-10-13

Borgbackup

In Debian e derivate, installare il pacchetto col comando:

apt install borgbackup -y

Inizializzazione del repository

Per inizializzare il repository, criptato tramite una password:

borg init --encryption=keyfile /path/to/repo

Esportazione e importazione della chiave

Un backup borg senza chiave di crittografia è solo un insieme di dati casuali senza alcuna possibilità di recupero. Se la chiave di crittografia non viene correttamente esportata e archiviata, un guasto della macchina renderebbe inutilizzabile il backup. Per eseguire l’export: borg key export /path/to/repo borg_encrypted_key_backup.txt.

Maggiori informazioni: borg key export

Per importare le chiavi di crittografia: borg key import /path/to/repo /path/to/keyfile

Queste chiavi si trovano comunque in ~/.config/borg/keys/.

Backup

Per eseguire un backup manualmente

borg create --stats --list --progress /path/to/repo::25-11-2023 /path/to/source/

dove --stats permette di visualizzare statistiche aggiuntive sull’archivio, mentre l’opzione --list di visualizzare la lista degli oggetti inseriti nell’archivio.

Col flag --compression è possibile impostare anche il livello di compressione. Vedere: Backup compression

È possibile anche visualizzare la lista dei backup:

borg list /path/to/repo

Montare l’archivio

mkdir /tmp/borg/

borg mount /path/to/repo /tmp/borg/

ls -l /tmp/borg/

Retention

Col comando borg prune è possibile stabilire una politica di conservazione dei backup (https://borgbackup.readthedocs.io/en/stable/usage/prune.html)

Ad esempio:

# Keep 7 end of day, 4 additional end of week archives, and an end of month archive for every month:
borg prune --list --stats --force --keep-daily=7 --keep-weekly=4 --keep-monthly=-1 /path/to/repo

borg prune -v /path/to/repo --stats \
    --keep-hourly=12 --keep-daily=60 --keep-weekly=12 --keep-monthly=24

Restore

Per ripristinare un intero backup nella cartella corrente:

borg extract -v --list /path/to/repo/::25-11-2023

Se invece volessimo estrarre solo alcuni file o cartelle, innanzitutto creiamo una cartella temporanea dove verrà montato il repository:

mkdir /tmp/borg/

Montare quindi il repository, che puo’ essere anche remoto:

borg mount ssh_host:path/to/repo/ /tmp/borg/

Listare il contenuto col comando:

borg list ssh_host:path/to/repo/::"08:00_06-10-2024"

Estrarre il contenuto, in modo da ripristinare i file:

borg extract sh_host:path/to/repo/::"08:00_06-10-2024" /mnt/

dove /mnt/ indica la cartella (o il file) da estrarre. L’opzione --dry-run permette di vedere cosa verrebbe estratto, ma senza che sia veramente estratto.

Nota Attualmente, extract scrive sempre nella directory di lavoro corrente (“.”), quindi assicuratevi di essere nel posto giusto prima di eseguire borg extract

Ulteriori esempi:

# Extract entire archive
borg extract /path/to/repo::my-files

# Extract entire archive and list files while processing
borg extract --list /path/to/repo::my-files

# Verify whether an archive could be successfully extracted, but do not write files to disk
borg extract --dry-run /path/to/repo::my-files

# Extract the "src" directory
borg extract /path/to/repo::my-files home/USERNAME/src

# Extract the "src" directory but exclude object files
borg extract /path/to/repo::my-files home/USERNAME/src --exclude '*.o'

Riferimenti

Inserisci l'indirizzo della tua istanza


Altri post come questo