Ma serve veramente fare un backup? La mia risposta è: assolutamente si! Quante volte grazie ai salvataggi sono riuscito a evitare grandi problemi e la perdita di informazioni importanti. Avere un sistema di backup automatico è ancora più importante, perchè se lo facciamo manualmente è di sicuro la prima attività che rimandiamo. Ma quando ci serve poi è troppo tardi.
Negli ambienti Unix like (Linux, macOS,…) esiste un sistema molto comodo e veloce: Borg backup. Veloce e anche molto efficace nel non occupare troppo spazio. Quest’ultimo punto è importante per me perchè oltre i backup sul mio NAS regolarmente copio tutto su un server esterno (off-site backup). Server che è a pagamento e quindi devo cercare di ridurre il bisogno di spazio.
Problema con Synology#
I NAS Synology sono ottimi e li trovo anche molto stabili, perfetti per gestire i miei dati di casa. Tra le multiple opzioni offerte purtroppo però non c’è Borg. Questo non è un grosso problema perchè posso usare Samba per fare il backup, ma Samba non mi ha mai convinto.
Su Synocommunity esiste un pacchetto già pronto per Borg, ma non è molto aggiornato. Cosa fare?
Borg backup server su Docker#
Aggirare il problema è possibile grazie a Docker, creando un container con un server SSH e Borg (il mantainer di Borg non vuole creare un container ufficiale). Ma mantenere un’immagine sempre aggiornata, per un amatore con poco tempo libero, non è facile. Quindi basta customizzare un container già presente, in questo caso ho preso OpenSSH di Linuxserver.io.
Creare il proprio server Borg su Docker (how to)#
Ecco la ricetta per creare il proprio server SSH e Borg.
docker-compose#
Grazie a docker-compose
è possibile creare il container e ricrearlo se ci sono aggiornamenti. Su questo mio repository ci sono alcuni esempi di come si può usare (traefik in questo caso no serve).
backup-server:
image: linuxserver/openssh-server
container_name: backup-server
environment:
- PUID=CHANGE_YOUR-UID-NUMBER
- PGID=CHANGE_YOUR-GID-NUMBER
- TZ=CHANGE_YOUR_TIME_ZONE
- PUBLIC_KEY=CHANGE_SSH-CLIENT-PUB-KEY
- SUDO_ACCESS=false
- PASSWORD_ACCESS=false
- USER_NAME=CHANGE_USER-NAME
volumes:
- /volume1/docker/backup/config:/config
ports:
- 12222:2222
Cambiare tutte le variabili e i volumi secondo il proprio sistema. La chiave pubblica SSH del client può essere creata direttamente da Vorta (vedi il prossimo capitolo). Il UID
e GID
possono essere letti nel sistema host di docker lanciando il comando ìd
.
script#
Nella cartella /config
che è collegata con il container creare una nuova cartella: /config/custom-cont-init.d
. In questa cartella creare uno script, il nome è indifferente (esempio: borg.sh
).
#!/bin/bash
echo "**** installing borg backup ****"
apk add --no-cache borgbackup
Il container di Open SSH è aggiornato regolarmente e ad ogni aggiornamento del container e riavvio dello stesso verrà installata l’ultima versione di Borg backup presente nel repository di Alpine Linux.
Aggiungere una cartella /config/data
(o in un’altra posizione) per raccogliere i dati dei backup.
Vorta#
Sul mio computer Ubuntu uso Vorta come interfaccia grafica per gestire i backup. Sono un po’ pigro nel usare alcuni sistemi solo con linea di comando, in particolare se non li uso tutti i giorni (perchè mi dimentico i comandi).
Tra le funzioni carine che trovo in Vorta (oltre a Borg Backup) ci sono:
- possibilità di scegliere se eseguire o no il backup in base al Wifi (utile per quando si fa roaming con il telefono)
- programmare l’esecuzione automatica
- visualizzazione dei backup eseguiti
- mounting dei vari punti di ripristino per consultare i singoli file
Prossimi passi#
- gestire i backup di Home Assistant con Borg
- creare procedura per il backup dei raspberry pi
Foto di: Bethany Drouin da Pixabay