Utilizzo rclone
Come ottenere il massimo da IBM Cloud® Object Storage quando hai accesso a strumenti e soluzioni come rclone
e cli (command-line interface).
Installa rclone
Lo strumento rclone
è utile per mantenere sincronizzate le directory e per migrare i dati tra le piattaforme di archiviazione. È un programma Go e viene fornito come un singolo file binario.
Installazione rapida
- Scarica il file binario pertinente.
- Estrai il file binario
rclone
orclone.exe
dall'archivio. - Esegui
rclone config
per la configurazione.
Installazione utilizzando uno script
Installa rclone
sui sistemi Linux/macOS/BSD:
curl https://rclone.org/install.sh | sudo bash
Sono disponibili anche le versioni beta:
curl https://rclone.org/install.sh | sudo bash -s beta
Lo script di installazione controlla innanzitutto la versione installata di rclone
e non scarica alcun file se la versione corrente è già aggiornata.
Installazione di Linux da file binari precompilati
-
Recuperare e decomprimere il binario:
curl -O https://downloads.rclone.org/rclone-current-linux-amd64.zip unzip rclone-current-linux-amd64.zip cd rclone-*-linux-amd64
-
Copiare il file binario in un'ubicazione sensibile:
sudo cp rclone /usr/bin/ sudo chown root:root /usr/bin/rclone sudo chmod 755 /usr/bin/rclone
-
Installa la documentazione:
sudo mkdir -p /usr/local/share/man/man1 sudo cp rclone.1 /usr/local/share/man/man1/ sudo mandb
-
Esegui
rclone config
per la configurazione:rclone config
Installazione di macOS da file binari precompilati
-
Scaricare il pacchetto
rclone
:cd && curl -O https://downloads.rclone.org/rclone-current-osx-amd64.zip
-
Estrarre il file scaricato e
cd
nella cartella estratta:unzip -a rclone-current-osx-amd64.zip && cd rclone-*-osx-amd64
-
Sposta
rclone
nel tuo$PATH
e immetti la tua password quando richiesto:sudo mkdir -p /usr/local/bin sudo mv rclone /usr/local/bin/
Il comando
mkdir
è sicuro da eseguire, anche se la directory esiste. -
Rimuovi i file rimanenti.
cd .. && rm -rf rclone-*-osx-amd64 rclone-current-osx-amd64.zip
-
Esegui
rclone config
per la configurazione:rclone config
Configura l'accesso a IBM COS
-
Esegui
rclone config
e selezionan
per un nuovo remoto.No remotes found - make a new one n) New remote s) Set configuration password q) Quit config n/s/q> n
-
Immetti il nome per la configurazione:
name> <YOUR NAME>
-
Seleziona l'archivio “s3”.
Choose a number from below, or type in your own value 1 / Alias for a existing remote \ "alias" 2 / Amazon Drive \ "amazon cloud drive" 3 / Amazon S3 Complaint Storage Providers (Dreamhost, Ceph, Minio, IBM COS) \ "s3" 4 / Backblaze B2 \ "b2" [snip] 23 / http Connection \ "http" Storage> 3
-
Seleziona IBM COS come il provider di archiviazione S3.
Choose the S3 provider. Enter a string value. Press Enter for the default ("") Choose a number from below, or type in your own value 1 / Amazon Web Services (AWS) S3 \ "AWS" 2 / Ceph Object Storage \ "Ceph" 3 / Digital Ocean Spaces \ "Digital Ocean" 4 / Dreamhost DreamObjects \ "Dreamhost" 5 / IBM COS S3 \ "IBMCOS" [snip] Provider>5
-
Immetti False per immettere le tue credenziali.
Get AWS credentials from the runtime (environment variables or EC2/ECS meta data if no env vars). Only applies if access_key_id and secret_access_key is blank. Enter a boolean value (true or false). Please Enter for the default ("false"). Choose a number from below, or type in your own value 1 / Enter AWS credentials in the next step \ "false" 2 / Get AWS credentials from the environment (env vars or IAM) \ "true" env_auth>false
-
Immetti la chiave di accesso e il segreto.
AWS Access Key ID - leave blank for anonymous access or runtime credentials. access_key_id> <> AWS Secret Access Key (password) - leave blank for anonymous access or runtime credentials. secret_access_key> <>
-
Specifica l'endpoint per IBM COS. Per IBM COS pubblico, scegli tra le opzioni fornite. Per ulteriori informazioni sugli endpoint, vedi Endpoint e ubicazioni di archiviazione.
Endpoint for IBM COS S3 API. Choose a number from below, or type in your own value 1 / US Cross Region Endpoint \ "s3.us.cloud-object-storage.appdomain.cloud" 2 / US Cross Region Dallas Endpoint \ "s3-api.dal.us-geo.objectstorage.s3.us-south.cloud-object-storage.appdomain.cloud.net" 3 / US Cross Region Washington DC Endpoint \ "s3-api.wdc-us-geo.objectstorage.s3.us-south.cloud-object-storage.appdomain.cloud.net" 4 / US Cross Region San Jose Endpoint \ "s3-api.sjc-us-geo.objectstorage.s3.us-south.cloud-object-storage.appdomain.cloud.net" 5 / US Cross Region Private Endpoint \ "s3-api.us-geo.objectstorage.service.networklayer.com" [snip] 34 / Toronto Single Site Private Endpoint \ "s3.tor01.objectstorage.service.networklayer.com" endpoint>1
-
Specifica un vincolo di ubicazione IBM COS. Il vincolo di ubicazione deve corrispondere all'endpoint. Per ulteriori informazioni sugli endpoint, vedi Endpoint e ubicazioni di archiviazione.
1 / US Cross Region Standard \ "us-standard" 2 / US Cross Region Vault \ "us-vault" 3 / US Cross Region Cold \ "us-cold" 4 / US Cross Region Flex \ "us-flex" 5 / US East Region Standard \ "us-east-standard" [snip] 32 / Toronto Flex \ "tor01-flex" location_constraint>1
-
Specifica un ACL. Sono supportati solo
public-read
eprivate
.Canned ACL used when creating buckets or storing objects in S3. Choose a number from below, or type in your own value 1 "private" 2 "public-read" acl>1
-
Esamina la configurazione visualizzata e accetta di salvare il “remoto”, quindi esci. Il file di configurazione dovrebbe essere simile a questo
[YOUR NAME] type = s3 Provider = IBMCOS access_key_id = xxx secret_access_key = yyy endpoint = s3.us.cloud-object-storage.appdomain.cloud location_constraint = us-standard acl = private
Riferimento ai comandi
Crea un bucket
rclone mkdir RemoteName:newbucket
Elenca i bucket disponibili
rclone lsd RemoteName:
Elenca il contenuto di un bucket
rclone ls RemoteName:newbucket
Copia un file dal locale al remoto
rclone copy /Users/file.txt RemoteName:newbucket
Copia un file dal remoto al locale
rclone copy RemoteName:newbucket/file.txt /Users/Documents/
Elimina un file sul remoto
rclone delete RemoteName:newbucket/file.txt
Comandi di elenco
Esistono diversi comandi di elenco correlati:
ls
per elencare solo la dimensione e il percorso degli oggettilsl
per elencare solo l'ora di modifica, la dimensione e il percorso degli oggettilsd
per elencare solo le directorylsf
per elencare gli oggetti e le directory in un formato facile da analizzarelsjson
per elencare gli oggetti e le directory in formato JSON
rclone sync
L'operazione sync
rende identici l'origine e la destinazione e modifica solo la destinazione. La sincronizzazione non trasferisce i file invariati, viene controllata la dimensione e l'ora di modifica oppure MD5SUM. La destinazione
viene aggiornata in modo da corrispondere all'origine, inclusa l'eliminazione di file, se necessario.
Poiché questa operazione può causare la perdita di dati, verifica innanzitutto l'indicatore --dry-run
per vedere esattamente cosa dovrebbe essere copiato ed eliminato.
I file nella destinazione non vengono eliminati se ci sono errori in qualsiasi punto.
Il contenuto della directory è sincronizzato, non la directory stessa. Quando source:path
è una directory, è il contenuto di source:path
ad essere copiato, non il nome della directory e il contenuto. Per ulteriori
informazioni, vedi la spiegazione estesa nel comando copy
.
Se dest:path
non esiste, viene creato e il contenuto di source:path
viene copiato in esso.
rclone sync source:path dest:path [flags]
Utilizzo di rclone
da più ubicazioni simultaneamente
Puoi utilizzare rclone
da più ubicazioni simultaneamente se scegli una directory secondaria diversa per l'output:
Server A> rclone sync /tmp/whatever remote:ServerA
Server B> rclone sync /tmp/whatever remote:ServerB
Se esegui la sincronizzazione (sync
) nella stessa directory, puoi utilizzare rclone copy
altrimenti i due processi potrebbero eliminare l'uno i file dell'altro:
Server A> rclone copy /tmp/whatever remote:Backup
Server B> rclone copy /tmp/whatever remote:Backup
--backup-dir=DIR
Quando utilizzi sync
, copy
o move
, i file che sono stati sovrascritti o eliminati vengono spostati nella loro gerarchia originale in questa directory.
Se --suffix
è impostato, ai file spostati viene aggiunto il suffisso. Se è presente un file con lo stesso percorso (dopo l'aggiunta del suffisso) nella directory, viene sovrascritto.
Il remoto in uso deve supportare lo spostamento o la copia del lato server e devi utilizzare lo stesso remoto della destinazione della sincronizzazione. La directory di backup non deve sovrapporsi a quella di destinazione.
rclone sync /path/to/local remote:current --backup-dir remote:old
sincronizzerà (sync
) /path/to/local
in remote:current
, ma per i file che sono stati aggiornati o eliminati, verranno archiviati in remote:old
.
Se esegui rclone
da uno script, potresti voler utilizzare la data di oggi come il nome directory passato a --backup-dir
per archiviare i file più vecchi oppure potresti voler passare --suffix
con la data
di oggi.
rclone
daily sync
La pianificazione di un backup è importante per automatizzare i backup. Tale procedura varia a seconda della tua piattaforma. Windows può utilizzare l'Utilità di pianificazione (Task Scheduler) mentre MacOS e Linux possono utilizzare i crontab.
Sincronizzazione di una directory
Rclone
sincronizza una directory locale con il contenitore remoto, memorizzando tutti i file nella directory locale nel contenitore. Rclone
utilizza la sintassi, rclone sync source destination
, dove source
è la cartella locale e destination
è il contenitore all'interno di IBM COS.
rclone sync /path/to/my/backup/directory RemoteName:newbucket
È possibile che tu abbia già una destinazione che è stata creata, ma se questo non fosse il caso, puoi creare un nuovo bucket utilizzando i passi sopra riportati.
Pianificazione di un lavoro
Prima di pianificare un lavoro, assicurati di aver eseguito il tuo caricamento iniziale e di averlo completato.
Windows
-
Crea un file di testo denominato
backup.bat
sul tuo computer e incollalo nel comando che hai utilizzato nella sezione relativa alla sincronizzazione di una directory. Specificare il percorso completo dirclone.exe
e non dimenticare di salvare il file.C:\full\path\to\rclone.exe sync "C:\path\to\my\backup\directory" RemoteName:newbucket
-
Utilizza
schtasks
per pianificare un lavoro. Questo programma di utilità utilizza diversi parametri.
-
/RU – l'utente con il quale eseguire il lavoro. È necessario se l'utente che vuoi utilizzare si è scollegato.
-
/RP – la password per l'utente.
-
/SC – impostato su DAILY
-
/TN – il nome del lavoro. Chiamalo backup
-
/TR – il percorso al file backup.bat che hai creato.
-
/ST – l'ora di inizio dell'attività. Questo è nel formato di 24 ore. 01:05:00 è 1:05 AM. 13:05:00 è 13:05 PM.
schtasks /Create /RU username /RP "password" /SC DAILY /TN Backup /TR C:\path\to\backup.bat /ST 01:05:00
Mac e Linux
-
Crea un file di testo denominato
backup.sh
sul tuo computer e incolla il comando che hai utilizzato nella sezione relativa alla sincronizzazione di una directory. È qualcosa di simile a quanto riportato di seguito. Specificare il percorso completo dell'eseguibilerclone
e non dimenticare di salvare il file.#!/bin/sh /full/path/to/rclone sync /path/to/my/backup/directory RemoteName:newbucket
-
Rendi eseguibile lo script con
chmod
.chmod +x backup.sh
-
Modifica i crontab.
sudo crontab -e
-
Aggiungi una voce alla fine del file dei crontab. I crontab sono semplici: i primi cinque campi descrivono, nell'ordine,, minuti, ore, giorni, mesi e giorni feriali. L'utilizzo di * indica tutti. Per fare in modo che
backup.sh
venga eseguito ogni giorno alle 1:05 AM, utilizza qualcosa di simile a questo:5 1 * * * /full/path/to/backup.sh
-
Salva i crontab e sei pronto a iniziare.