Rclone

Rclone (http://rclone.org/) e` un programma che consente di fare backup su diverse piattaforme di cloud storage.

L'ho usato per fare il backup di diversi TB di roba su Google Drive e a parte avere impiegato circa 20 giorni per la prima sincronizzazione, funziona perfettamente.

Il suo limite risiede fondamentalmente nel fatto che se si hanno molte decine di migliaia di files da sincronizzare, non risulta velocissimo nemmeno quando non c'e` niente da aggiornare, perche` impiega parecchio tempo a controllare se il backup e` aggiornato (se i files sono uguali). Questa lentezza e` probabilmente anche causata dal fatto che Google Drive non accetta piu` di tot (poche) richieste al secondo, e quindi anche se si ha molta banda le operazioni con molti files risultano comunque rallentate.

Un altro limite e` che i dati remoti non sono crittografati. Il che puo` essere utile per accedervi da remoto, volendo, e usare cosi` il backup come una sorta di archivio consultabile in qualsiasi momento, ma non e` adatto al backup di dati riservati.

Per il setup e la configurazione rimando alla documentazione del sito http://rclone.org/docs/ in quanto e` diversa a seconda di quale provider di storage usate.

Una volta configurato sara` possibile mettere in cron la chiamata per eseguire la sincronizzazione ogni quanto tempo volete.

Questo e` un esempio di script un minimo sofisticato per eseguire un backup. Esegue un controllo per vedere se per caso non sia rimasto un rclone in esecuzione con la stessa command line (cosi` posso averne piu` di uno in parallelo che lavorano su directory diverse) e se non c'e` lo lancia, usando il parametro "checkers=16" che raddoppia il numero di processi di check di uguaglianza lanciati in contemporanea. Questo parametro ho verificato che velocizza l'operazione di check di uguaglianza dei files, almeno su Google Drive. Lo script logga tutto su syslog, e alla fine manda l'output (lo stesso del syslog) anche per email a root (o all'utente che esegue il cron job).

#
# backup di /ud0 su google drive con rclone
#
# la copia finisce dentro a drive nella directory BackupRemoto/UD0
#



# verifico se non ho un rclone in esecuzione

if ps ax | grep -v "grep" | grep -q "backupremoto:BackupRemoto/UD0"

  then
    echo "ERRORE: Lo script di rclone e\` gia\` (o ancora)  in esecuzione!"
    echo "ERRORE: Lo script di rclone e\` gia\` (o ancora)  in esecuzione!" |logger -t "rclone"

  else
    echo `date` Inizio il sync
    echo
    echo Inizio il sync  |logger -t "rclone"

    rclone --stats=60m --checkers=16  sync /ud0/ backupremoto:BackupRemoto/UD0/  2>&1 |tee /tmp/rclone_ud0.txt | logger -t "rclone"

    cat /tmp/rclone_ud0.txt
    rm  /tmp/rclone_ud0.txt

    echo
    echo `date` Fine del sync
    echo Fine del sync  |logger -t "rclone"
fi

LinuxDebian/Rclone (last edited 2016-11-09 19:02:32 by Kurgan)