Archives For Raspberry Pi

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.
RPi3 e rclone: sincronizzazione dei file tra locale e Cloud

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:

  • gioxx_org è il nome che ho dato al connettore rclone che si occupa di collegarsi a questo blog, dopo i due punti occorre inserire il percorso della cartella che si intende raggiungere. Per arrivare alla backupwordpress mi servirà attraversare prima html/wp-content. Questo percorso è lo stesso che vedresti utilizzando un qualsiasi client FTP per collegarti al tuo spazio web.
  • Dropbox è il nome (molto banale, ne sono consapevole) che ho dato al connettore rclone che si collega al mio account Dropbox. All’interno della home del mio Dropbox esiste una cartella chiamata DBBackup e al suo interno un’ulteriore cartella chiamata gioxx.org, è qui che finiscono tutti i file zip contenenti i backup del mio database MySQL (nota infatti il --include *.zip finale nella riga di comando, che obbliga rclone a scaricare solo file di tipo ZIP).
  • Il parametro -P equivale al “Progress“, rclone mi mostrerà a video l’avanzamento delle operazioni.
  • Il parametro --transfers 9 serve a forzare rclone a trasferire fino a 9 file alla volta, contemporaneamente, perché la mia macchina e la connettività possono sopportarlo. Più è alto il numero, più consumerai RAM e CPU della tua macchina (e occuperai banda internet in download e upload dato che il trasferimento viene eseguito dallo spazio FTP a Dropbox).

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?

  • Nulla cambia per il sync in sé. Sto chiedendo a rclone di tenere sincronizzati tutti i file della cartella html di fuorigioco (connettore che si collega al buon vecchio fuorigio.co) con una apposita cartella sull’account Dropbox. Restano i 9 trasferimenti contemporanei e la visualizzazione dei progressi, ma.
  • Ma in questo caso utilizzo il filtering messo a disposizione da rclone per escludere una lista di file e cartelle che non mi interessano (vedi: rclone.org/filtering). Sto chiedendo a rclone di aprire il file di testo exclude-fCo.txt e leggere cosa non voglio che venga sottoposto a sincronizzazione, per capirci:
# 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 🙂

Condividi l'articolo con i tuoi contatti:

Tutto parte da un computer. È piccolo, consuma poco, è affidabile in linea con la capacità di poter rimanere acceso ininterrottamente e perdersi per strada quasi sempre non per colpa sua, quanto per la fragilità che può avere una tradizionale scheda microSD sulla lunga distanza. Si chiama Raspberry Pi (raspberrypi.org) e se non hai mai sentito prima questo nome, vuol dire che tutto sommato dell’argomento tecnologia e informatica forse non sei realmente appassionato (e qui qualche fischio in fondo alla sala lo sento arrivare eccome).

Raspberry Pi: la base di partenza

RPi3

Eppure secondo me è proprio così, non prenderla sul personale o come attacco diretto. Di Raspberry Pi se ne parla ormai da tanti anni (è stata presentata come single-board computer nel 2011, nda) e oggi siamo ormai arrivati a poter sfruttare la sua terza generazione, nel modello B+ (che è quello che inizia a diffondersi sempre più). Io ci ho giocato in passato, ma non ne ho mai posseduto e tenuto uno in casa, fino a ora. Per “colpa” (se così si può chiamare) dei ragazzi di Cubbit ho deciso di acquistare proprio un RPi3 B+ da mettere in casa e nascondere nel ripostiglio, dove tengo anche il vecchio Media Center basato su Windows 7 e Plex (che tutto sommato svolge ancora il suo lavoro) e dove ho potuto portare dei cavi di rete che comunicano direttamente con il mio router (7590).

Starter Kit

Ho acquistato un modello completo, che propone anche il case, la scheda microSD e ulteriori accessori, lo prepara la ABOX, lo puoi trovare anche tu su Amazon:

Io ho scelto lo Starter Kit un pelo più costoso, ma con la scheda di memoria da 32 GB, così da non avere problemi di spazio per qualche tempo (sì, scoprirai che con RPi quei GB di spazio possono essere anche più che sufficienti). Tutto arrivato con i soliti rapidi tempi di Amazon, quindi montato e preparato per la prima installazione (che tra breve ti spiegherò come modificare rispetto all’originale prevista). RPi, se volessi fartela molto breve e chiara, è un ambiente di laboratorio, test, sviluppo, nuove scoperte.

Non è e non potrà mai sostituire il tuo PC di casa o il tuo laptop, ma potrà certamente farti da concentratore per la gestione della domotica, da server DNS con possibilità di oscurare le pubblicità invasive (e di questo ne parliamo in un prossimo articolo), da server Plex (con diverse limitazioni, occhio) o da piattaforma di gioco retrò e chissà quanta altra roba ancora, tutto racchiuso nel palmo di una mano e con una spesa tutto sommato limitata.

Partendo dal presupposto che tu abbia scelto un RPi3 B+, le caratteristiche della single-board dovrebbero più o meno essere queste:

  • CPU Broadcom BCM2837B0, Quad-Core a 64-bit 1.4 GHz con 1 GB di SDRAM LPDDR2.
  • WiFi e Bluetooth a doppia banda (2,4 GHz e 5 GHz IEEE 802.11.b/g/n/ac, versione bluetooth 4.2, BLE).
  • Velocità massima dell’attacco ethernet 300 Mbps, supporto Power-over-Ethernet (PoE) tramite HAT PoE separato rispetto allo Starter Kit.

A ciò va sempre associato un alimentatore capace di erogare 5V/ 3A per rimanere tranquilli e non incorrere nel più classico degli alert a video che lamentano una scarsa alimentazione (che potrebbe non essere sufficiente per servire anche hard disk esterni USB e simili) e, per le configurazioni un pelo più complesse in grado di tenere in piedi software più esosi, un paio di dissipatori in rame da poter installare secondo esigenza (tieni quindi a portata di mano la cara vecchia pasta termoconduttiva se pensi di voler fare cose turche con il tuo nuovo giocattolo!).

Cerca di avere sempre a che fare con microSD di qualità, classe 10 di nuova generazione possibilmente. Nel caso tu stessi acquistando il mio stesso Starter Kit, questo arriverà con una microSD sulla quale troverai già installato NOOBS (New Out Of Box Software), “an easy operating system installation manager for the Raspberry Pi“, in pratica è un bivio verso il tuo Sistema Operativo preferito, ma senza che questi ti obblighi a sceglierne per forza uno.

Io la microSD però l’ho formattata, e ci ho messo esclusivamente Raspbian:

Raspbian is a free operating system based on Debian optimized for the Raspberry Pi hardware. An operating system is the set of basic programs and utilities that make your Raspberry Pi run. However, Raspbian provides more than a pure OS: it comes with over 35,000 packages, pre-compiled software bundled in a nice format for easy installation on your Raspberry Pi.

Puoi farlo anche tu: è supportata, è parecchio comune tra proprietari di RPi e quindi gode di una comunità in grado di aiutarti e di portarci sopra sempre più software e utilità che potrebbero tornare utili anche a te, senza considerare la moltitudine di progetti che per la propria installazione consigliano e preparano procedure semplici proprio per questa distribuzione Linux ottimizzata. Io ti spiego quindi che fare se anche tu vuoi seguire il mio percorso.

Prima installazione

Inserisci la microSD nel tuo PC (io ho utilizzato il mio MacBook, ma i software che ho utilizzato sono disponibili anche per gli altri sistemi operativi), quindi scarica l’immagine di Raspbian che intendi utilizzare, io ho scelto quella completa di interfaccia grafica e qualche software di base (pesa un pelo di più ma ti permette di andare oltre l’uso del terminale e della connessione e amministrazione via SSH): raspberrypi.org/downloads/raspbian (il collegamento diretto alla versione che ho utilizzato è questo: downloads.raspberrypi.org/raspbian_full_latest).

Scarica ora il software gratuito balenaEtcher, ti permetterà di portare l’immagine di Raspbian su microSD e renderla avviabile, gli darai i pasto il file ZIP che hai scaricato qualche secondo fa. Non è necessario installarlo se usi Windows, puoi scaricare la versione portable (mentre su macOS io l’ho installato). Avvialo, ti si presenterà davanti la sua schermata principale, tu dovrai solo indicargli dove prendere il file ZIP contenente il sistema operativo da portare su microSD, selezionare quest’ultima e poi fare clic su Flash, è una procedura estremamente semplice (devi solo portare la necessaria pazienza affinché termini l’operazione).

Senza rimuovere la microSD dal PC, una volta chiuso balenaEtcher, dobbiamo abilitargli la possibilità di connetterci in SSH al Raspberry quando questo sarà in funzione. Per farlo hai metodi diversi in base al tuo sistema operativo. Come già detto, io ho eseguito tutta la procedura da macOS, ma ti fornisco anche un’alternativa Windows.

Abilita SSH

  • Se hai macOS, apri un Terminale e spostati nella microSD (cd /Volumes/NomeScheda, aiutati con il tabulatore), quindi – una volta dentro – crea un file vuoto chiamato ssh (touch ssh). Rimuovi correttamente la microSD da macOS, inseriscila nel Raspberry e avvialo.
  • Se hai Windows, apri un Prompt dei comandi e spostati nella microSD (verifica che lettera di unità è stata assegnata da Computer, quindi nel prompt digitala seguita dai due punti, esempio e:, premi invio), quindi – una volta dentro – crea un file vuoto chiamato ssh (echo ""> ssh). Rimuovi correttamente la microSD da Windows, inseriscila nel Raspberry e avvialo.

Cerca il Raspberry e collegati

Che tu abbia macOS o Windows poco importa, scarica PiFinder, un’utilità gratuita che cerca all’interno della tua rete il Raspberry e ti permette di collegarti rapidamente tramite un terminale. La trovi su GitHub all’indirizzo github.com/adafruit/Adafruit-Pi-Finder/releases/latest. Non si installa, si avvia e si utilizza immediatamente, in maniera del tutto semplice: cerchi e ti colleghi.

La password di default di una nuova installazione è sempre raspberry, ti verrà chiesto di cambiarla al primo accesso. Il sistema è immediatamente funzionante, noterai che collegandoti con un VNC potrai già operare sull’interfaccia grafica di Raspbian, modificare le proprietà del Desktop e lanciare i programmi installati. Sei a bordo.

E ora?

C’è un mondo davanti a te. RPi è collegato nella tua rete ed è pronto a lavorare per te. Solo facendo qualche ricerca Google arriverai a mille possibili utilizzi del nuovo giocattolo, l’importante è metterci della pazienza, della testa e della voglia di imparare. Nei prossimi articoli ti parlerò certamente di alcune delle possibilità che hai a tua disposizione, dal backup dei dati fatto tramite Raspberry e un NAS disponibile nella tua rete (io ho montato le unità del mio Synology) all’utilizzo come DNS server veloce e in grado di ripulire il web da possibili minacce, proteggendo te, la tua famiglia e sicuramente i più piccoli. Io attualmente lo sto usando come nodo Cubbit (per sperimentare il software in attesa delle Cubbit Cell) ma non solo, presto ne saprai di più.

Per me il Raspberry è certamente un giocattolo molto divertente in grado di portare via del lavoro al Media Center e forse anche al NAS, consumando meno risorse e dandomi la possibilità di imparare cose nuove. È un “esperimento” che sento di consigliare a tutti i patiti della materia che ancora non hanno fatto l’incauto acquisto.

Sei possessore anche tu di Raspberry? Cosa gli fai fare? Utilizziamo insieme l’area commenti per parlarne, e ricorda che non serve registrarsi a Disqus per poter lasciare il tuo contributo, dai un’occhiata qui.

× Disclaimer

Disclaimer (per un mondo più pulito)

Gli articoli che appartengono al tag "Banco Prova" o "Banco Prova Console" raccontano la mia personale esperienza con prodotti generalmente forniti da chi li realizza. In alcuni casi il prodotto descritto rimane a me, in altri viene restituito. In altri casi ancora sono io ad acquistarlo e decidere di pubblicare un articolo in seguito, solo per il piacere di farlo e di condividere con te le mie opinioni.
Ogni articolo rispetta -come sempre- i miei standard: nessuna marchetta, solo il mio parere, riporto i fatti, a prescindere dal giudizio finale.

Prodotto: acquistato di tasca mia su Amazon, esattamente un giorno prima che lo Starter Kit andasse in forte sconto (la mia solita botta di fortuna).
Condividi l'articolo con i tuoi contatti: