Come effettuare il backup con Google Drive e Raspberry

postato in: Articoli, Backup | 0

googleDrive

Buongiorno a tutti! Dopo una lunga pausa ricominciamo la pubblicazione di post qui su Tux Maniacs. Nel post di oggi andremo a creare metodo di backup sfruttando il cloud di Google Drive.

 

COSA VOGLIAMO OTTENERE
Il nostro goal sarà quello di effettuare il backup di una cartella presente sul nostro PC, tramite una sincronizzazione automatica. Vogliamo che i file presenti in questa cartella vengano salvati sul cloud Google Drive, senza un nostro intervento diretto, in modo che i file presenti all’interno del nostro cloud fungano, in sostanza, da copia di backup.

 

 

CHE COSA E’ POSSIBILE CARICARE
Praticamente tutto, ma non andremo a creare un cient di sincronizzazione. L’idea di base è quella di sfruttare Google Drive per avere una copia ridondante dei nostri file più importanti, in modo da non perderli in casi di malfunzionamento della macchina. Tipicamente in una macchina server andremo a caricare i file di configurazione, file di log, e cose simili. Ripetiamo che non è un client di sincronizzazione, bensì un modo per effettuare un backup geograficamente distante (e quindi più sicuro).

 

 

COSA CI SERVE
La prima componente che ci serve è un Raspberry Pi o un computer da salotto (come questo Asus VivoPc a dir poco fenomenale). La guida che esplicheremo è studiata in particolare per il Lampone, ma con alcune piccole modifiche si adatta perfettamente al qualunque sistema Linux. Se non siete forniti di un Raspberry Pi, potete acquistare la versione 2 a questo link . Noi di Tux Maniacs però vi consigliamo di acquistare lo Starter Bundle Pack che permette di iniziare subito a lavorare. Infatti contiene un case, il cavo di alimentazione, la scheda SD completa di sistema operativo ecc. La seconda componente è il programma Drive . Dal nome significativo, capiamo subito che questo programma permette di interagire con Google Drive in modo semplice. Il suo principale punto di forza consiste nella sue estrema semplicità. Ha infatti due sole funzioni: push e pull. Ma partiamo dall’inizio….

 

 

INSTALLAZIONE DEI PROGRAMMI NECESSARI
Scritto in Go Language (linguaggio molto amato da Big G) Drive è un programma che è stato creato da Burcu Dogan mentre lavorava presso il team di Google Drive. Come detto in precedenza, dato che è scritto in Go, ci servirà il compilatore ufficiale. Per installarlo diamo il seguente comando da terminale:

sudo apt-get install golang

al termine dell’installazione dovremo settare la variabile d'ambiente con:

        cat << ! >> ~/.bashrc

Inseriamo ora nel prompt che compare a video (si riconosce grazie al simbolo > al posto del solito dollaro):

    export GOPATH=\$HOME/gopath
    export PATH=\$GOPATH:\$GOPATH/bin:\$PATH
    !

Ora aggiorniamo il file .bashrc con il comando:

        source ~/.bashrc

Scaricarichiamo e compiliamo ora il codice sorgente di Drive dal repository Git ufficiale, tramite:

go get -u github.com/odeke-em/drive/cmd/drive

 

 

INIZIALIZZAZIONE
Per utilizzare Drive, ovviamente dovremo avere un account Google. Prima di lanciare per la prima volta il comando, dobbiamo inizializzare correttamente il nostro ambiente di lavoro. Per prima cosa creiamo una cartella che conterrà tutti i nostri file da condividere con Google Drive. La cartella è posizionabile in qualunque punto del nostro File System, e può avere qualunque nome. Nella procedura d’esempio che andremo a fare sarà la cartella google-drive e sarà posizionata all’interno della home del nostro utente (identificata dal simbolo ~ ). Per inizializzare drive diamo:

drive init ~/google-drive

Ci verrà chiesto di aprire un link di google per ottenere il codice identificativo per drive. Apriamo quindi un browser web e effettuiamo l’accesso al nostro account Google.

Fatto questo copiamo e incolliamo il link fornito e copiamo il codice univoco per autorizzare il programma Drive ad accedere ai nostri file.

cd ~/google-drive

 

 

CARICARE FILE SU GOOGLE DRIVE: PUSH
Una volta inizializzato il programma, possiamo cominciare a spostare i file che vogliamo caricare sul cloud, all’interno della cartella. Drive, come già detto prima, è un programma molto semplice. Di per se non fornisce alcuna funzione di sincronizzazione, ma di questo ce ne occuperemo più tardi. Ora impariamo a caricare correttamente i nostri file sul cloud Google Drive tramite il comando push:

drive push

Lanciato in questo modo il risultato è quello di caricare tutta la cartella nel cloud.

Si può semplicemente caricare un singolo file, passando anche il path di ciò che vogliamo caricare.

 

SCARICARE FILE DA GOOGLE DRIVE: PULL
Viceversa per scaricare tutti i file pendenti da Google Drive, basta semplicemente dare:

drive pull

Anche qui è possibile scaricare solo alcuni file passando come terzo parametro il path relativo dei/del file desiderati.

 

 

ATTENZIONE
Il comando pull converte in PDF e altri formati tutti i file creati con Google Documents.
Per specificare il formato diamo:

drive pull -export pdf,rtf,docx,txt

Vi sono molti formati supportati, presso questo link.

 

SINCRONIZZAZIONE PER RASPBERRY PI
Il programma Drive non è studiato affatto per una sincronizzazione come la conosciamo noi. Andremo infatti a creare un backup completo sul nostro cloud, della cartella google-drive.

Per fare ciò utilizzeremo il programma cron che è presente di default su tutte le distribuzioni Linux.

Dobbiamo innanzi tutto creare uno script che ci permetta di sincronizzare automaticamente la cartella di google-drive con il cloud. Digitiamo nel terminale:

nano google-drive-updater.sh

e incolliamo il seguente listato:

#!/bin/bash
cd /home/<user>/google-drive
drive push -quiet

Prestiamo particolare attenzione alla riga 2: abbiamo il path completo della cartella. Al posto di <user> inseriamo, ovviamente, il nostro utente.
Salviamo e chiudiamo con ctrl+x.

Il secondo passo è rendere automatico l’esecuzione di questo script. Apriamo il file di configurazione di cron con:

sudo nano /etc/crontab

e aggiungiamo in fondo al file la seguente riga:

*/15 * * * * bash /home//google-drive-updater.sh

In questo modo cron eseguirà in maniera automatica la sincronizzazione una volta ogni 15 minuti. Ovviamente potete inserire l’intervallo di tempo che più preferite.
A questo punto dobbiamo solamente più rendere effettivi i cambiamenti con:

sudo /etc/init.d/cron restart

 

 

CONCLUSIONI

Arrivati a questo punto abbiamo la sicurezza che ogni file presente nella cartella google-drive sarà sincronizzata con il cloud Google Drive.

 

FONTI

 

Dottore in Informatica. Appassionato di computer fin dal primo PC Olivetti con Windows 95 e la bellezza di 8 MB di RAM.
Utilizzatore Linux da 5 anni, credo profondamente nella filosofia open source.
Dopo tante distro provate sul mio fidato Toshiba, uso Fedora per lo studio e il divertimento.

Lascia un commento