martedì 14 aprile 2015 di Michele Nasi 10837 Letture

Backup su Google Drive automatico da server Linux

Se si amministra un server Linux, sia esso una macchina dedicata od un server cloud, è piuttosto comune l'esigenza di effettuare un backup automatico del suo contenuto. Riveste un'importanza a dir poco fondamentale, infatti, il backup periodico del contenuto del server (ad esempio siti web e corrispondenti database).

Come supporto per la memorizzazione dei file di backup, è possibile utilizzare Google Drive, il servizio per lo storage di file “in the cloud” fornito dal colosso di Mountain View.
Si può così configurare il server affinché effettui il backup dei dati d'interesse e li carichi automaticamente su Google Drive.
Drive mette a disposizione di tutti gli utenti, gratuitamente, 15 GB di spazio cloud. Dopo aver effetuato il login su Google Drive da un qualunque browser web, collegandosi con questa pagina è sempre possibile verificare lo spazio disponibile e quello che resta ancora a disposizione.

Backup su Google Drive automatico da server Linux

Per richiedere il backup su Google Drive automatico da un server Linux, è possibile ricorrere all'ottima utilità gdrive, basata su riga di comando.

Disponibile nelle versioni per Linux, Windows e Mac OS X, gdrive altro non è che un client per Google Drive, capace di effettuare il login al servizio di Google e gestire i file memorizzati sulla nuvola.


Il download dell'utilità gdrive può essere effettuato da questa pagina selezionando la versione di proprio interesse (nel caso di un server Linux, di solito, drive-linux-386 o drive-linux-amd64).


Per installare gdrive sul server Linux, una volta scaricato il programma, si dovrà semplicemente digitare quanto segue:

install drive-linux* /usr/local/bin/drive

Ad installazione di gdrive ultimata, il primo passaggio da compiere consiste nell'effettuare l'autenticazione su Google Drive.
Per procedere, basterà digitare drive al prompt dei comandi e premere il tasto Invio.

L'utilità gdrive mostrerà un lungo link che dovrà essere copiato in un qualunque browser web: si otterrà, in risposta, un codice alfanumerico che si dovrà copiare in gdrive.

Digitando, nella shell di Linux, il comando drive list si otterrà istantaneamente l'elenco dei file memorizzati su Google Drive.

Backup su Google Drive automatico da server Linux

Accanto a ciascun file è riportato un lungo identificativo alfanumerico che servirà successivamente per interagire con qualunque file.

Ad esempio, digitando drive info --id seguito da uno dei codici indentificativi, si otterranno tutti i dettagli relativamente al file specificato:

Backup su Google Drive automatico da server Linux

Il comando drive download --id seguito dall'identificativo di un file salvato su Google Drive, permetterà di scaricare tale file.

In una cartella di propria scelta, suggeriamo di creare un nuovo script bash:

nano backup.sh

All'interno di tale script si potrà incollare quanto segue:


#!/bin/bash

## Script creato da Michele Nasi - www.ilsoftware.it

## Crea archivio zip backup
zip --password XXXXXXX -r backup NOMECARTELLA

## Cancella eventuale backup precedente su Google Drive
fileid=$(drive list -t backup.zip -n | head -c 29)
drive delete --id $fileid

## Carica archivio zip backup su Google Drive
echo "Caricamento del backup su Google Drive in corso ..."
drive upload --file backup.zip

## Cancella archivio zip backup locale
rm -rf backup.zip
echo "Upload completato."


Al posto di XXXXXXX, si può specificare una password per proteggere il contenuto dell'archivio Zip con una password mentre NOMECARTELLA va sostituito con il nome della cartella oggetto del backup.

Lo script provvede a creare un archivio Zip (il pacchetto zip deve esse stato preventivamnete installato in Linux: vedere Come configurare server cloud Aruba) con il contenuto della directory NOMECARTELLA (file ed eventuali sottocartelle) e provvede automaticamente a caricare tale file (backup.zip) su Google Drive.

Nel caso in cui un file omonimo (backup.zip) fosse già presente su Google Drive, questo viene preventivamente eliminato prima di effettuare il nuovo upload.

Controllati i percorsi e programmata l'esecuzione automatica dello script su Linux (ad esempio con cron), quello illustrato può essere considerato come un ottimo meccanismo per effettuare il backup automatico del contenuto del server.

Prima di avviare lo script bash, bisognerà renderlo eseguibile digitando il comando chmod a+x backup.sh.
Per avviarlo, quindi, si potrà digitare ./backup.sh.


Il backup, tra l'altro, avviene molto velocemente, compatibilmente con il quantitativo di banda messo a disposizione dal provider.
Nel caso di un server cloud Aruba (vedere Come configurare server cloud Aruba), ad esempio, il backup automatico di circa 3,6 GB di dati su Google Drive è avvenuto in meno di 10 minuti, a 7,8 MB/s (ovvero a circa 63 Mbit/s).


  1. Avatar
    Michele Nasi
    04/02/2016 12:22:29
    Ok, appena possibile ricontrollo perché, francamente, non lo ricordo. Guardando la guida di supporto (https://github.com/prasmussen/gdrive/bl ... /README.md) penso si possa fare con lo switch -a o comunque cancellando il precedente token di autenticazione dalla directory di gdrive. Se hai modo di fare qualche test, prova pure nel frattempo.
  2. Avatar
    gioimpe
    04/02/2016 12:10:37
    Mi scusi se scrivo di nuovo ma non so se il messaggio di prima è arrivato. Ha capito perfettamente devo usare drive su un'altro spazio google drive con id e pwd diverse. Se mi da la soluzione le sarei grato. Saluti.
  3. Avatar
    gioimpe
    04/02/2016 11:59:14
    hai capito perfettamente, se hai una soluzione te ne sarei grato. Salti.
  4. Avatar
    Michele Nasi
    03/02/2016 15:36:22
    Puoi chiarire meglio il tuo quesito? Hai impostato drive usando il link che ti viene restituito ma adesso vuoi far caricare i file altrove (su un altro account Google Drive)?
  5. Avatar
    gioimpe
    03/02/2016 10:53:07
    Grazie infinite funziona perfettamente. Ti chiedo se c'è un modo per resettare la sincronizzazione con google drive per imputarlo in un'altro disco sempre google drive che ha una id e una password diversa. grazie.