Ed ecco, come promesso, la traduzione di una guida essenziale sull'uso di Rclone, per i backup dei file su, o tra, storage in rete. Buona lettura.
Rclone tutorial con esempi
by diehard
Rclone è un’applicazione multipiattaforma a linea di comando per la sincronizzazione di dati, simile a rsync, ma focalizzata sulla gestione degli spazi di archiviazione in nuvola (cloud)
Rclone permette di gestire sostanzialmente la maggioranza dei servizi di archiviazione dei dati in rete (cloud storage service), indipendentemente dal sistema operativo usato, a velocità sorprendente. Utilizza un algoritmo denominato "delta-transfer algorithm", il quale fa in modo che solo i cambiamenti nei dati siano copiati/sincronizzati, evitando di dover trasferire grandi mole di dati.
Chi inizia ad utilizzarlo potrebbe risultare intimidito dal fatto che Rclone non abbia un’interfaccia grafica ufficiale (GUI) semplice da utilizzare, eccetto una sperimentale, semplice e spartana, ed una basata su interfaccia web.
$
rclone
rcd –rc-web-gui
In ogni caso, è sufficiente la familiarità con l’utilizzo delle funzionalità base del terminale per poter utilizzare tale applicazione senza eccessive difficoltà. Di seguito viene effettuata una descrizione dei comandi Rclone più utilizzati, comprensiva di esempi esplicativi.
Contenuti (i links rimandano al contenuto della versione originale)
1 Rclone esempi di configurazione – Come configurare Rclone
2 Rclone esempi di copia - Copiare dati tra servizi di rete
2.1 Usare rclone per copiare un file
2.2 Usare rclone per copiare file multipli
2.4 Usare rclone per copiare solo nuovi files
2.5 Forzare rclone a copiare ricorsivamente
3 rclone esempi di sincronizzazione - Sincronizzare directories
3.1 rclone sincronizzazione automatica
3.2 rclone sincronizzazione bidirezionale
3.3 Mostrare i progressi durante una copia/sincronizzazione di lunga durata
4.1 rclone montaggio su MacOS o Linux
4.2 rclone montaggio su Windows
4.3 Differenza tra montaggio e copia/sincronizzazione con rclone
Rclone esempi di configurazione – Come configurare Rclone
Una volta installato Rclone, il primo comando da impostare è la configurazione. Questo permette di aggiungere collegamenti remoti, e cancellare e modificare quelli esistenti. Tutti i collegamenti remoti sono archiviati nel file di configurazione. Lanciando il comando del file di configurazione, viene descritta la posizione dove si trova il file.
rclone config file
Configuration file is stored at: /home/xxxxxxxxx/.config/rclone/rclone.conf
rclone
config
è
un comando interattivo, che guida l’utente passo
per passo su come aggiungere nella configurazione un servizio di
storage.
Se
si lancia il comando, può
capitare che venga
chiesta la password di accesso.
rclone config
Enter configuration password:
Se ciò avviene, pur non avendo creato ancora alcuna configurazione, vuol dire che esiste già un file config di default creato dall’installazione o da un primo lancio del programma, ad es. tramite la GUI. Essendo un file crittato, il programma lo ha creato utilizzando una password random, visualizzabile nel file di log. Per evitare inutili perdite di tempo nella determinazione di tale password random, utile solo per accedere ad un file criptato ancora non configurato, è sufficiente eliminare il file rclone.conf e lanciare nuovamente il comando $ rclone config ; il programma provvederà a ricreare il file ed a proporre nel menu la possibilità di settare una password, da fare immediatamente al fine di impedire al programma di intervenire nuovamente con password random. Le informazioni all’interno del file di configurazione verranno quindi crittate utilizzando come passphrase la password scelta ed inserita. Ciò sarà valido sia per la configurazione a linea di comando che per l’interfaccia grafica/web. Di seguito la procedura da seguire. (sostituire alle xxxxxx nella path il corretto percorso)
rm /home/xxxxxx/.config/rclone/rclone.conf
rclone config file
Configuration file doesn't exist, but rclone will use this path: /home/xxxxxx/.config/rclone/rclone.conf
rclone config
NOTICE: Config file "/home/xxxxxx/.config/rclone/rclone.conf" not found - using defaults
No remotes found - make a new one
n) New remote
s) Set configuration password
q) Quit config
n/s/q> s
Your
configuration is not encrypted.
If you add a password, you will protect your login information to cloud services.
a) Add Password
q) Quit to main menu
a/q> a
Enter NEW configuration password:
password: (inserire la password)
Confirm NEW configuration password:
password: (inserire nuovamente la password)
Password set
Your configuration is encrypted.
c) Change Password
u) Unencrypt configuration
q) Quit to main menu
c/u/q> q
Una volta impostata la password, per creare un primo collegamento remoto dare il comando n.
No remotes found - make a new one
n) New remote
s) Set configuration password
q) Quit config
n/s/q> n
A questo punto è necessario scegliere il nome del collegamento, possibilmente corto (il nome viene digitato per richiamare il servizio) e senza caratteri speciali, così da rendere univoco il riconoscimento (ad es. DanGDrive o BettyDropbox)Verrà proposta una lista consistente di servizi di rete già riconosciuti, e la possibilità di impostare un collegamento locale; dovrà essere inserito il numero corrispondente all’opzione scelta (o il nome del servizio, indicato tra virgolette) seguito da enter, quindi verranno chiesti in sequenza l’user ID e la password per il collegamento al servizio; per evitare problemi, dato che il servizio può essere autenticato anche in un secondo tempo, si possono lasciare i campi vuoti, dando semplicemente enter. Ciò è utile soprattutto per quei servizi che chiedono l’autenticazione tramite API (ad es. GoogleDrive), che, in caso di autenticazione automatica prevedono una preattivazione delle API, ma che in ogni caso non consentono l’accesso perché richiedono una verifica dell’attendibilità delle app di terze parti. Lasciando l’autenticazione vuota, si bypassa il problema.
E’ possibile che venga richiesto anche il tipo di servizio da adottare (user o enterprise, inserire il numero opportuno; 1 per utente normale) e la locazione se diversa dal default (in assenza di percorsi specifici dare enter).
A questo punto è possibile, ma non ordinariamente necessario, scegliere di impostare parametri avanzati, quali:
- interruzione per il passaggio al caricamento in più parti (default 50 M)
- numero massimo di volte per provare a eseguire il commit di un file in più parti (default 100)
- valore encoder.MultiEncoder (Enter per default
("Slash,BackSlash,Del,Ctl,RightSpace,InvalidUtf8,Dot"))
A questo punto il programma chiede di assicurarsi che l’URL di reindirizzamento sia impostato su "http://127.0.0.1:53682/" nella configurazione personalizzata, e nel caso se usare l’autoconfiguratore, che di norma è la cosa più semplice (digitare Y)
Il passaggio al browser per l’autenticazione dell’accesso completerà la procedura. Completato questo, dare q fino all’uscita del programma di configurazione, o fino al menù principale, dal quale si potrà ripetere la procedura per un altro servizio.A questo punto, il programma è pronto a gestire i files nel servizio impostato.Copiare dati tra servizi di archiviazione in rete e locali
In questa sezione, verranno analizzate alcune situazioni tipiche di diverso livello di complessità per evidenziare le possibilità offerte dal programma.
Utilizzare rclone per copiare un file
Funzionalità basilare di Rclone: per copiare un file da una posizione ad un’altra utilizzare la seguente sintassi:
rclone copy source:source_path
dest
:destination_path
“source” e “dest” sono i nomi dei servizi in gioco, seguiti dai due punti (da cui si nota subito che il programma consente di gestire file presenti su due cloud diversi, purché attivati). Nel caso in cui una delle due riguardi file locali, la parte “source:” e “dest:” deve essere rimossa, inserendo solo la directory completa della locazione del file. In questo modo è possibile copiare file da locale a remoto e viceversa, e tra remoto e remoto (o tra locale e locale, come fa il comando cp).
Ad esempio, supponendo di aver attivato il servizio GoogleDrive denominato MyGDrive, per copiare un file dalla posizione/home/nl/sample.txt
entro
la cartella /prova situata nella directory principale di GoogleDrive,
il comando sarà
rclone -v copy /home/
xxxxx
/sample.txt MyGDrive:/
prova/
L’opzione
-v
significa
verbose, che
descrive i dettagli del processo.
Utilizzare rclone per copiare file multipli
Copiare
più files con nomi simili nella stessa destinazione (si veda
rclone
filtering documentation page per
maggiori informazioni).
Supponiamo
di avere 3 files denominati
sample.txt
,
sample_2.txt
nella
directory corrente, ed il file
sample_3.txt
in una
sottodirectory denominata
sub
.
Il
comando che copia tutti e tre i files sarà:
rclone copy . --include "sample*.txt" MyGDrive:/
Se
non si vuole che il programma trasferisca anche le subdirectories,
limitandosi ai file
sample.txt
and sample_2.txt
,
è
sufficiente rimuovere /
dal
filtro,
e
rclone
effettuerà
lo scanning solo
nella directory corrente
rclone copy . --include "sample*.txt" MyGDrive:/
E’ possibile copiare tutti i files di testo (estensione .txt) con il seguente comando:
rclone copy . --include "*.txt" MyGDrive:/
Note:
Si
noti che il punto .
Indica
che il programma lavora nella directory corrente. Per agire su
directory diverse, è necessario indicare tale locazione.
Utilizzare rclone per copiare un’intera directory/cartella, inclusi la struttura ed i contenuti
Rclone, di default, effettua un controllo ricorsivo su tutti i files e le subdirectories nella directory sorgente, compresi i files nascosti, e li copia nella directory di destinazione in modo ricorsivo, preservando tutta la struttura ed i contenuti della directory, ma trascurando le directory vuote.
In certi casi, se si vogliono copiare anche le cartelle vuote, basta inserire nel comando l’opzione –create-empty-src-dirs
rclone copy --create-empty-src-dirs . MyGDrive:/
Si noti che Amazon S3 Bucket non possiede il concetto di directory, per cui non è possibile avere cartelle vuote in questo.
Ci sono casi in cui si potrebbe voler inserire una directory sotto un’altra, senza copiarne il contenuto. Ad es., si supponga di avere la directorydir1
che
contiene i due files
1.txt
and 2.txt
,
e
che la si voglia inserire entro una directory “prova” nella
destinazione, in modo che il risultato sia:
prova
└──
dir1
├──
file1
└──
file2
In questo caso sarà:
rclone copy dir1 MyGDrive:stuff/dir1
Utilizzare rclone per copiare solo nuovi files
E’ possibile utilizzare rclone per copiare solo nuovi files, anche se "nuovi files" può avere vari significati.
Per trasferire solo i files che sono stati creati o modificati in un certo arco di tempo, ad es. negli ultimi due giorni, si può usare l’opzione –max-age
rclone copy --max-age 2d dir1 MyGDrive:
prova
/dir1
Il periodo di tempo può essere impostato secondo la seguente tabella:
ms
- Millisecondss
- Secondsm
- Minutesh
- Hoursd
- Daysw
- WeeksM
- Monthsy
– Years
Al posto del periodo di tempo può essere inserito un tempo assoluto, secondo uno dei seguenti formati:
RFC3339 - eg "2006-01-02T15:04:05Z07:00"
ISO8601 Date and time, local timezone - "2006-01-02T15:04:05"
ISO8601 Date and time, local timezone - "2006-01-02 15:04:05"
ISO8601 Date - "2006-01-02" (YYYY-MM-DD)
Se invece per “nuovi files” si intendono solo i files che non esistono nella directory di destinazione, allora si vuole che i files di identico nome già presenti ma con data di modifica e contenuti diversi non vengano copiati o aggiornati.
In questo caso dovrà essere utilizzata l’opzione--ignore-existing
flag.
rclone copy --ignore-existing dir1 MyGDrive:stuff/dir1
Esempi di sincronizzazione con rclone – Sincronizzare directories
Il
comando da utilizzare è rclone
sync
rclone
sync
source:source_path
dest
:destination_path
Questo
consente di ottenere sorgente e destinazione identici, modificando
solo la destinazione. Confronta una lista di files nella sorgente e
nella destinazione, e compara gli
hashes. Se
corrispondono, il file non viene trasferito, altrimenti lo scrive o
sovrascrive nella destinazione.
Importante:
Poichè
la sincronizzazione può causare una perdita di dati, è bene
effettuare prima un test con l’opzione
--dry-run
per
vedere esattamente ciò che verrà copiato e cancellato, prima di
eseguire il comando esecutivo.
Per
vedere in tempo reale ciò che rclone sta eseguendo durante il
processo di trasferimento e le statistiche di questo, è possibile
aggiungere l’opzione -P
(o
–progress
);
è possibile inoltre aggiungere l’opzione
-v
(o
–
verbose
)
per vedere dettagli aggiuntivi su ogni passaggio del processo
.
Sicronizzazione automatica
rclone
consente
di ottenere una sincronizzazione unidirezionale con
servizi di archiviazione in rete, agendo in modo simile alle
applicazioni client di
Google Drive or Mega, ma
in modo più efficiente. Per
ottenere una sincronizzazione continua, è necessario creare un
cronjob
che
si attivi con una frequenza prestabilita; per farlo è necessario
creare un file cloudsync.sh
con
il seguente contenuto, sostituendo a
SOURCE_PATH and REMOTE_PATH i
giusti percorsi.
#!/bin/bash
# Get config path from rclone
config=$(rclone config file)
# Remove everything except the path
RCLONE_CONFIG="/${config#*/}"
export RCLONE_CONFIG
# Exit if rclone running
if [[ "$(pidof -x $(basename $0) -o %PPID)" ]]; then exit; fi
# Sync files to the cloud
/usr/bin/rclone sync [SOURCE_PATH] remote:[REMOTE_PATH]
--log-file /opt/rclone_upload.log
--verbose
Dopo averlo creato, è necessario assegnare al file i permessi di esecuzione dando al terminale
chmod
+x ./cloudsync.sh
Infine, va impostato il cron job editando il file di configurazione, dando
crontab
-e
ed
aggiungendo il cron
job creato,
se non è stato fatto in precedenza. Si controlli, a questo
proposito,
How To Set
Up A Cron Job In Linux. In
questo caso, la linea da aggiungere sarà una cosa del tipo:
*/5 * * * * /home/nl/cloudsync.sh
Sincronizzazione bidirezionale
Per
ora,
rclone
non
possiede una soluzione di sincronizzazione bidirezionale che simuli
le funzionalità di applicazioni lato client come quella di Dropbox o
Google Drive., ma solo effettuare un backup dei files nel servizio
remoto. In
alternativa, è possibile utilizzare soluzioni di sincronizzazione
completa come Insync or Odrive, che vengono fornite con GUI
efficienti, buon supporto, ed opzioni di sincronizzazione avanzate
molto adatte anche ai principianti. CloudCross,
un
client
di sincronizzazione open source a linea di comando, di non immediata
comprensione per i principianti, può essere una buona soluzione a
questo problema.
Visualizzazione del progresso di lunghi processi di sincronizzazione
Vi sono situazioni in cui, a causa della mole di dati da gestire, della velocità di connessione e di accesso al server, e di altri fattori, è necessario controllare se il processo è in esecuzione e quanto viene stimata la durata dell’esecuzione; questo può essere ottenuto con l’opzione -P (o –progress)
Rclone esempi di montaggio
Utilizzare Rclone per montare spazi di archiviazione di rete come disco locale
Il
comando
rclone
mount
permette
di montare spazi di archiviazione di rete come se fossero directory
locali. Su
Linux/macOS
si
può montare uno spazio remoto come ad es. MyGDrive
con
una specifica come
/path/to/local/mount
. Va
ricordato che la destinazione DEVE essere una directory ESISTENTE E
VUOTA. La sintassi sarà:
rclone mount MyGDrive:remote_file_path /path/to/local/mount
Per
montare automaticamente lo spazio remoto ad ogni avvio, è necessario
aggiungere il comando come script di startup (ad es. fstab). In più,
l’opzione
--daemon
consentirà
a Rclone di funzionare in background, elemento che in questo caso
risulterà particolarmente utile.
In alternativa, è possibile aggiungere un cronjob come quello di seguito riportato, che consenta a rclone mount di partire all’avvio
@reboot ( /path/to/rclone mount --<options> <src> <dst> &)&
Rclone mount su Windows
Su
Windows
è
possibile montare uno spazio di archiviazione di rete su una lettera
di periferica drive non utilizzata
(X:
in this example) o
su una cartella non
esistente.
rclone mount MyGDrive:remote_file_path X:
rclone mount MyGDrive:remote_file_path C:nonexistent_directory
Differenze tra Rclone mount e Rclone sync/copy
I
file
systems sono
costruiti in modo tale da ottenere un’affidabilità pari al 100%,
mentre
i sistemi di archiviazione di rete sono ancora molto distanti da
questo risultato.
I
comandi sync
/copy
di
rclone affrontano questo problema effettuando molti tentativi
.
Rclone
mount
invece
non può effettuare tentativi così come non può fare copie locali
dei dati presenti negli spazi in rete.
Si
controlli sul manuale di
file
caching per
trovare soluzioni per ottenere un mount più affidabile.
Nessun commento:
Posta un commento