Ricerca nel sito web

Rclone: sincronizza le directory dei file da diversi archivi cloud


Rclone è un programma a riga di comando scritto nel linguaggio Go, utilizzato per sincronizzare file e directory da diversi fornitori di archiviazione cloud come: Amazon Drive, Amazon S3, Backblaze B2, Box, Ceph, DigitalOcean Spaces, Dropbox, FTP, Google Cloud Storage, Google Drive, ecc.

Come vedi, supporta più piattaforme, il che lo rende uno strumento utile per sincronizzare i tuoi dati tra server o su un archivio privato.

Rclone viene fornito con le seguenti funzionalità

  • L'hash MD5/SHA1 esegue controlli in ogni momento per garantire l'integrità dei file.
  • I timestamp vengono conservati sui file.
  • Sincronizzazioni parziali supportate su un intero file.
  • Modalità di copia per file nuovi o modificati.
  • Sincronizzazione unidirezionale per rendere una directory identica.
  • Modalità di controllo: controllo dell'uguaglianza dell'hash.
  • Può sincronizzarsi da e verso la rete, ad esempio due diversi account cloud.
  • Backend (crittografia).
  • (Cache) back-end.
  • (Unione) back-end.
  • Supporto FUSE opzionale (supporto rclone).

Come installare rclone nei sistemi Linux

L'installazione di rclone può essere completata in due modi diversi. Il più semplice è utilizzare il loro script di installazione, emettendo il seguente comando.

curl https://rclone.org/install.sh | sudo bash

Ciò che fa questo script è verificare il tipo di sistema operativo su cui viene eseguito e scaricare l'archivio relativo a quel sistema operativo. Quindi estrae l'archivio e copia il binario rclone in /usr/bin/rclone e concede i permessi 755 sul file.

Alla fine, una volta completata l'installazione, dovresti vedere la seguente riga:

Rclone v1.44 has successfully installed.
Now run “rclone config” for setup, Check https://rclone.org/docs/ for  more details.

Il secondo modo per installare rclone è emettere i seguenti comandi.

curl -O https://downloads.rclone.org/rclone-current-linux-amd64.zip
unzip rclone-current-linux-amd64.zip
cd rclone-*-linux-amd64

Ora copia il file binario e dagli i permessi di eseguibilità.

cp rclone /usr/bin/
chown root:root /usr/bin/rclone
chmod 755 /usr/bin/rclone

Installa la pagina man rclone.

mkdir -p /usr/local/share/man/man1
cp rclone.1 /usr/local/share/man/man1/
mandb 

Come configurare rclone nei sistemi Linux

Successivamente ciò che dovrai fare è eseguire rclone config per creare il tuo file di configurazione. Verrà utilizzato per l'autenticazione per l'utilizzo futuro di rclone. Per eseguire l'impostazione della configurazione, eseguire il comando seguente.

rclone config

Verrà visualizzato il seguente messaggio:

2018/11/13 11:39:58 NOTICE: Config file “/home/user/.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>

Le opzioni sono le seguenti:

  • n): crea una nuova connessione remota
  • s): imposta la protezione tramite password per la tua configurazione
  • q) – esci dalla configurazione

Ai fini di questo tutorial, premiamo "n" e creiamo una nuova connessione. Ti verrà chiesto di dare un nome alla nuova connessione. Successivamente ti verrà richiesto di selezionare il tipo di archiviazione da configurare:

Per connessione ho chiamato “Google ” e selezionato “Google Drive ”, che si trova sotto il numero 12. Al resto delle domande puoi rispondere semplicemente lasciando la risposta predefinita, che è un “ ” vuoto.

Quando richiesto, puoi selezionare "autoconfig", che genererà tutte le informazioni necessarie per connetterti al tuo Google Drive e concedere le autorizzazioni rclone a utilizzare i dati di Google Drive.

Il processo è simile al seguente:

Google Application Client Secret - leave blank normally.
client_secret>
Scope that rclone should use when requesting access from drive.
Choose a number from below, or type in your own value
 1 / Full access all files, excluding Application Data Folder.
   \ "drive"
 2 / Read-only access to file metadata and file contents.
   \ "drive.readonly"
   / Access to files created by rclone only.
 3 | These are visible in the drive website.
   | File authorization is revoked when the user deauthorizes the app.
   \ "drive.file"
   / Allows read and write access to the Application Data folder.
 4 | This is not visible in the drive website.
   \ "drive.appfolder"
   / Allows read-only access to file metadata but
 5 | does not allow any access to read or download file content.
   \ "drive.metadata.readonly"
scope> 1
ID of the root folder - leave blank normally.  Fill in to access "Computers" folders. (see docs).
root_folder_id> 
Service Account Credentials JSON file path - needed only if you want use SA instead of interactive login.
service_account_file>
Remote config
Use auto config?
 * Say Y if not sure
 * Say N if you are working on a remote or headless machine or Y didn't work
y) Yes
n) No
y/n> y
If your browser doesn't open automatically go to the following link: http://127.0.0.1:53682/auth
Log in and authorize rclone for access
Waiting for code...
Got code
Configure this as a team drive?
y) Yes
n) No
y/n> n
--------------------
[remote]
client_id = 
client_secret = 
scope = drive
root_folder_id = 
service_account_file =
token = {"access_token":"XXX","token_type":"Bearer","refresh_token":"XXX","expiry":"2018-11-13T11:57:58.955387075Z"}
--------------------
y) Yes this is OK
e) Edit this remote
d) Delete this remote
y/e/d> y

Come utilizzare rclone nei sistemi Linux

Rclone ha un elenco piuttosto lungo di opzioni disponibili e comandi da utilizzare. Cercheremo di coprire alcuni dei più importanti:

Elenca directory remota

rclone lsd <remote-dir-name>:

Copia i dati con rclone

rclone copy source:sourcepath dest:destpath

Tieni presente che se rclone trova duplicati, questi verranno ignorati:

Sincronizza i dati con rclone

Se desideri sincronizzare alcuni dati tra directory, dovresti utilizzare rclone con il comando sync.

Il comando dovrebbe assomigliare a questo:

rclone sync source:path dest:path [flags]

In questo caso la sorgente viene sincronizzata con la destinazione, modificando solo la destinazione! Questo metodo ignora i file non modificati. Poiché il comando può causare la perdita di dati, puoi utilizzarlo con “–dry-run ” per vedere esattamente cosa verrà copiato ed eliminato.

Sposta i dati con rclone

Per spostare i dati, puoi utilizzare rclone con il comando sposta. Il comando dovrebbe assomigliare a questo:

rclone move source:path dest:path [flags]

Il contenuto della sorgente verrà spostato (eliminato) e inserito nella destinazione selezionata.

Altri comandi utili per rclone

Per creare una directory sulla destinazione.

rclone mkdir remote:path

Per rimuovere una directory.

rclone rmdir remote:path

Controlla se i file sull'origine e sulla destinazione corrispondono:

rclone check source:path dest:path

Cancella file:

rclone delete remote:path

Ciascuno dei comandi rclone può essere utilizzato con flag diversi e include il proprio menu di aiuto. Ad esempio, puoi eseguire un'eliminazione selettiva utilizzando l'opzione Elimina. Supponiamo che tu voglia eliminare file più grandi di 100 milioni, il comando sarebbe simile a questo.

rclone --min-size 100M delete remote:path

Si consiglia vivamente di rivedere il manuale e l'aiuto per ciascun comando per ottenere il massimo da rclone. La documentazione completa di rclone è disponibile su: https://rclone.org/

Conclusione

rclone è una potente utility da riga di comando che ti aiuta a gestire i dati tra diversi provider di archiviazione cloud. Anche se in questo articolo abbiamo scalfito solo la superficie delle funzionalità di rclone, c'è molto altro da ottenere soprattutto se utilizzato in combinazione con il servizio cron (ad esempio).