Site icon Gioxx.org

RPi: sincronizzazione dei file tra locale e Cloud con rclone

Quando si parla di backup lo scopo principale del gioco è sempre e solo uno: cercare di non perdere i propri file. Che tu li voglia salvare in copia singola o doppia poco importa, ciò che spesso serve è la delocalizzazione dei file per evitare che il Single Point of Failure sia dietro l’angolo (ho i file sul disco in casa! Ok, e se ti entrano in casa?). Per fare questo mestiere esistono già diverse soluzioni NAS in grado di replicarsi tra loro anche su differenti reti fisiche e in Cloud, ma se volessimo farlo tramite RPi?

Dato che ci stiamo per addentrare un po’ più nella ciccia, è il momento giusto per il doveroso (e assente da un po’) …

Attenzione: articolo ad alto tasso di tecnicismi lavorativi, nerditudine, viaggi mentali che potrebbero non interessare ai più, comunque vada perdete ogni speranza o voi che leggete.
source: unsplash.com / author: Fredy Jacob

rclone

Si chiama rclone e permette di sincronizzare file (in più modi / vie) tra locale e Cloud, non necessariamente con ambo i protagonisti presi in causa. Cosa vuol dire? Vuol dire che nessuno ti vieta di utilizzare rclone per scambiare dati tra due punti in locale (forse poco utile) o tra due punti in Cloud (e qui torna utile in caso di migrazioni), o locale misto Cloud che riguarda forse la maggior parte dei casi. Si tratta di una soluzione completamente open, trovi tutto il progetto su GitHub.

rclone è in grado di dialogare con una quantità molto elevata di servizi di Cloud Storage, è un po’ un coltellino svizzero da tenere a portata di mano (anche sotto forma di soluzione portable). Esistono alcune interfacce grafiche per Windows o macOS ma alcune di queste non vengono più sviluppate e supportate, quindi ti consiglio caldamente di imparare a utilizzare la sua riga di comando: rclone.org/docs.

Qualche esempio pratico

Con l’arrivo di RPi3 B+ in casa, ho scelto di iniziare a giocare con rclone e migrare (in test) quei backup oggi portati a termine da Windows e SyncBack Free. Ti faccio quindi qualche esempio pratico di come sia possibile ottenere lo stesso risultato passando da tutt’altro Sistema Operativo e relativo software di copia dati.

Partendo dal presupposto che tu abbia già configurato rclone e inserito quindi i vari connettori che ti servono (in questo caso parliamo di puro SFTP e nulla più), ti basterà realizzare un piccolo script bash contenente poche e semplici istruzioni, come questo:

rclone sync "gioxx_org:html/wp-content/backupwordpress" "Dropbox:DBBackup/gioxx.org" -P --transfers 9 --include *.zip

La stringa si traduce in questa maniera:

Tutto chiaro? Vuoi un altro esempio?

rclone sync "fuorigioco:html" "Dropbox:WebBackup/fuorigio.co" -P --transfers 9 --filter-from /home/pi/exclude-fCo.txt

Cosa è cambiato?

# Esclusioni Fuorigio.co
- /wp-admin/**
- /wp-includes/**

Salta la prima riga, un commento per capire di che lista stiamo parlando nel momento in cui apro il file di testo. Da lì in poi potrai notare un elenco fatto di cartelle che voglio saltare a piè pari, che rclone quindi ignorerà passando oltre. Nessuno ti vieta, come specificato nella documentazione ufficiale, di inserire ulteriori cartelle o singoli file, anche utilizzando delle wildcard che possono quindi fare match con più dati contemporaneamente.

Non ti resta che il crontab

Se non sai di cosa stiamo parlando (sei serio? E hai avuto la pazienza di leggere fino a qua? Fatti abbracciare!), trovi tutto ciò che c’è da sapere riguardo crontab su Raspbian (ma non solo) all’indirizzo raspberrypi.org/documentation/linux/usage/cron.md.

L’attività via rclone la sappiamo padroneggiare e lo script bash è pronto. Lo hai già reso eseguibile, non ti resta che programmarne l’esecuzione secondo esigenza. In questo momento possono quindi tornarti utili un paio di siti web dedicati alla generazione di righe crontab da copiare e riportare facilmente nel file di sistema (sudo crontab -e):

Io utilizzo un pelo più il primo che il secondo (quest’ultimo è molto utile quando vuoi immediatamente leggere in maniera più sensata una riga di Crontab più che crearla da zero). Specifica l’intervallo di esecuzione del tuo script e fornisci ogni dettaglio richiesto, così arriverai a un risultato che potrebbe essere simile a questo:

0 2 * * * /home/pi/DBBackup.sh

Come lo si legge? Ecco: lo script di backup verrà eseguito alle ore 2 del mattino (il 2) in punto (lo 0, che diversamente avrebbe dovuto riportare un altro numero da 1 a 59 se avessi voluto un diverso orario più “esotico“), di ogni giorno (il primo asterisco, avrebbe potuto avere valore da 1 a 31), di ogni mese (il secondo asterisco, avrebbe potuto avere valore da 1 a 12), di ogni giorno della settimana (l’ultimo asterisco, e questo sta a indicare che l’esecuzione deve essere quotidiana, altrimenti avrebbe potuto avere valore da 0 a 6). Ti sembra difficile? Inizialmente lo è, ma poi si entra nell’ottica e lo si capisce immediatamente, ti ho fornito quei due siti web poco sopra proprio per iniziare a fare pratica.

Salva la modifica al crontab e attendi fiducioso che i tuoi file finiscano correttamente nella cartella di backup (ovviamente controlla che vada tutto liscio).

L’articolo si conclude qui (per la tua certa felicità), in caso di problemi o dubbi puoi sempre lasciare un commento. Utilizzi già rclone? Se sì, come gestisci i tuoi backup? Sono curioso di confrontarmi con altre persone nella mia stessa situazione e voglia di sperimentare ?

Correzioni, suggerimenti? Lascia un commento nell'apposita area qui di seguito o contattami privatamente.
Ti è piaciuto l'articolo? Offrimi un caffè! ☕ :-)

L'articolo potrebbe non essere aggiornato

Questo post è stato scritto più di 5 mesi fa, potrebbe non essere aggiornato. Per qualsiasi dubbio ti invito a lasciare un commento per chiedere ulteriori informazioni! :-)

Condividi l'articolo con i tuoi contatti:
Exit mobile version