Utilisation rclone
Tirez le meilleur parti d'IBM Cloud® Object Storage en accédant à des outils et des solutions comme rclone
et l'interface de ligne de commande (CLI).
Installer rclone
L'outil rclone
est utile pour assurer la synchronisation des répertoires et pour effectuer la migration des données entre les plateformes de stockage. Il s'agit d'un programme Go livré sous la forme d'un fichier binaire unique.
Installation avec démarrage rapide
- Téléchargez le fichier binaire approprié.
- Extrayez le fichier binaire
rclone
ourclone.exe
de l'archive. - Exécutez
rclone config
pour effectuer la configuration.
Installation à l'aide d'un script
Installez rclone
sur des systèmes Linux/macOS/BSD :
curl https://rclone.org/install.sh | sudo bash
Des versions bêta sont également disponibles :
curl https://rclone.org/install.sh | sudo bash -s beta
Le script d'installation commence par vérifier la version de rclone
qui est installée et ignore la réception par téléchargement si la version en cours est déjà à jour.
Installation de Linux à partir d'un fichier binaire précompilé
-
Extrayez et décompressez le fichier binaire:
curl -O https://downloads.rclone.org/rclone-current-linux-amd64.zip unzip rclone-current-linux-amd64.zip cd rclone-*-linux-amd64
-
Copiez le fichier binaire dans un emplacement approprié:
sudo cp rclone /usr/bin/ sudo chown root:root /usr/bin/rclone sudo chmod 755 /usr/bin/rclone
-
Installez la documentation :
sudo mkdir -p /usr/local/share/man/man1 sudo cp rclone.1 /usr/local/share/man/man1/ sudo mandb
-
Exécutez
rclone config
pour effectuer la configuration :rclone config
Installation de macOS à partir d'un fichier binaire précompilé
-
Téléchargez le package
rclone
:cd && curl -O https://downloads.rclone.org/rclone-current-osx-amd64.zip
-
Extrayez le fichier téléchargé et
cd
dans le dossier extrait:unzip -a rclone-current-osx-amd64.zip && cd rclone-*-osx-amd64
-
Déplacez
rclone
dans votre$PATH
et entrez votre mot de passe lorsque vous y êtes invité :sudo mkdir -p /usr/local/bin sudo mv rclone /usr/local/bin/
La commande
mkdir
peut être exécutée sans danger, même si le répertoire existe. -
Retirez les fichiers restants.
cd .. && rm -rf rclone-*-osx-amd64 rclone-current-osx-amd64.zip
-
Exécutez
rclone config
pour effectuer la configuration :rclone config
Configuration de l'accès à IBM COS
-
Exécutez
rclone config
et sélectionnezn
pour un nouveau conteneur d'objets distant.No remotes found - make a new one n) New remote s) Set configuration password q) Quit config n/s/q> n
-
Entrez le nom de la configuration :
name> <YOUR NAME>
-
Sélectionnez le stockage “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
-
Sélectionnez IBM COS comme fournisseur de stockage 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
-
Saisissez False pour entrer vos données d'identification.
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
-
Entrez la clé d'accès et le secret.
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> <>
-
Spécifiez le noeud final pour IBM COS. Pour Public IBM COS, choisissez l'une des options fournies. Pour plus d'informations sur les noeuds finaux, voir Noeuds finaux et emplacements de stockage.
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
-
Spécifiez une contrainte d'emplacement IBM COS. La contrainte d'emplacement doit correspondre au noeud final. Pour plus d'informations sur les noeuds finaux, voir Noeuds finaux et emplacements de stockage.
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
-
Spécifiez une liste de contrôle d'accès. Seules les valeurs
public-read
etprivate
sont prises en charge.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
-
Passez en revue la configuration affichée et acceptez de sauvegarder le conteneur d'objets distant, puis quittez le programme. Le fichier de configuration doit se présenter comme suit :
[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
Référence de commande
Créer un compartiment
rclone mkdir RemoteName:newbucket
Création de la liste des compartiments disponibles
rclone lsd RemoteName:
Création de la liste des éléments de contenu d'un compartiment
rclone ls RemoteName:newbucket
Copie d'un fichier d'un système local vers un conteneur d'objets distant
rclone copy /Users/file.txt RemoteName:newbucket
Copie d'un fichier d'un conteneur d'objets distant vers un conteneur d'objets local
rclone copy RemoteName:newbucket/file.txt /Users/Documents/
Suppression d'un fichier sur un conteneur d'objets distant
rclone delete RemoteName:newbucket/file.txt
Commandes de création de liste
Il existe plusieurs commandes de liste associées:
ls
, permet de répertorier la taille et le chemin uniquement pour des objets.lsl
, permet de répertorier l'heure, la taille et le chemin d'une modification uniquement pour des objets.lsd
, permet de répertorier des répertoires uniquement.lsf
, permet de répertorier des objets et des répertoires dans un format facile à analyser.lsjson
, permet de répertorier des objets et des répertoires au format JSON.
rclone sync
L'opération sync
permet d'unifier la source et la destination et de modifier uniquement la destination. La synchronisation ne transfère pas les fichiers inchangés, testés par taille et heure de modification ou MD5SUM. La destination
est mise à jour pour correspondre à la source, y compris en supprimant des fichiers si nécessaire.
Comme il s'agit d'une opération pouvant entraîner la perte de données, effectuez d'abord des tests avec l'indicateur --dry-run
pour voir exactement ce qui doit être copié et supprimé.
Les fichiers dans la destination ne sont pas supprimés s'il y a des erreurs à moment donné.
Le contenu du répertoire est synchronisé, et non le répertoire lui-même. Lorsque source:path
est un répertoire, c'est le contenu de source:path
qui est copié et non le nom et le contenu du répertoire. Pour
plus d'informations, voir les explications détaillées dans la rubrique sur la commande copy
.
Si l'objet dest:path
n'existe pas, il est créé et le contenu source:path
y est ajouté.
rclone sync source:path dest:path [flags]
Utilisation simultanée de rclone
à partir de plusieurs emplacements
Vous pouvez utiliser rclone
à partir de plusieurs emplacements simultanément si vous choisissez un autre sous-répertoire pour la sortie :
Server A> rclone sync /tmp/whatever remote:ServerA
Server B> rclone sync /tmp/whatever remote:ServerB
Si vous exécutez sync
dans le même répertoire, vous pouvez utiliser rclone copy
, sinon, les deux processus risquent de supprimer leurs fichiers mutuels :
Server A> rclone copy /tmp/whatever remote:Backup
Server B> rclone copy /tmp/whatever remote:Backup
--backup-dir=DIR
Lorsque vous utilisez sync
, copy
ou move
, les fichiers qui auraient été écrasés ou supprimés sont déplacés dans leur hiérarchie d'origine dans ce répertoire.
Si --suffix
est défini, le suffixe est ajouté aux fichiers déplacés. S'il existe un fichier avec le même chemin (après que le suffixe a été ajouté) dans le répertoire, il est écrasé.
Le conteneur d'objets distant en cours d'utilisation doit prendre en charge le déplacement ou la copie côté serveur et vous devez utiliser le même conteneur d'objets distant que la destination de l'opération de synchronisation. Le répertoire de sauvegarde ne doit pas chevaucher le répertoire de destination.
rclone sync /path/to/local remote:current --backup-dir remote:old
Effectuera une opération sync
entre /path/to/local
et remote:current
, mais les fichiers qui auraient été mis à jour ou supprimés seront stockés dans remote:old
.
Si vous exécutez rclone
à partir d'un script, vous souhaiterez peut-être utiliser la date du jour comme nom de répertoire pour --backup-dir
afin de stocker les anciens fichiers, ou vous souhaiterez peut-être transmettre
le paramètre --suffix
avec la date du jour.
Synchronisation quotidienne de rclone
La planification d'une sauvegarde est essentielle pour l'automatisation des sauvegardes. La façon dont vous effectuez cette opération dépend de votre plateforme. Windows peut utiliser Task Scheduler tandis que MacOS et Linux peuvent utiliser un fichier crontabs.
Synchronisation d'un répertoire
Rclone
synchronise un répertoire local avec le conteneur distant, en stockant tous les fichiers du répertoire local dans le conteneur. Rclone
utilise la syntaxe rclone sync source destination
, où source
est le dossier local et destination
est le conteneur dans IBM COS.
rclone sync /path/to/my/backup/directory RemoteName:newbucket
Vous avez peut-être déjà créé une destination, mais si tel n'est pas le cas, vous pouvez créer un nouveau compartiment en vous servant des étapes décrites ci-dessus.
Planification d'un travail
Avant de planifier un travail, vérifiez que vous avez effectué et achevé votre envoi par téléchargement initial.
Windows
-
Créez un fichier texte nommé
backup.bat
quelque part sur votre ordinateur et collez-le dans la commande que vous avez utilisée dans la section relative à la synchronisation d'un répertoire. Indiquez le chemin d'accès complet àrclone.exe
et n'oubliez pas de sauvegarder le fichier.C:\full\path\to\rclone.exe sync "C:\path\to\my\backup\directory" RemoteName:newbucket
-
Utilisez
schtasks
pour planifier un travail. Cet utilitaire prend un certain nombre de paramètres.
-
/RU – Utilisateur sous lequel le travail doit être exécuté. Ce paramètre est nécessaire si l'utilisateur que vous souhaitez utiliser est déconnecté.
-
/RP – Mot de passe de l'utilisateur.
-
/SC – La valeur DAILY est affectée à ce paramètre.
-
/TN – Nom du travail. Nommez-le Backup.
-
/TR – Chemin d'accès au fichier backup.bat que vous avez créé.
-
/ST – Heure de démarrage de la tâche. Il s'agit d'une heure au format 24 heures. 01:05:00 est 1:05 AM. 13:05:00 serait 1:05 PM.
schtasks /Create /RU username /RP "password" /SC DAILY /TN Backup /TR C:\path\to\backup.bat /ST 01:05:00
Mac et Linux
-
Créez un fichier texte nommé
backup.sh
quelque part sur votre ordinateur et collez-le dans la commande que vous avez utilisée dans la section relative à la synchronisation d'un répertoire. Le fichier doit se présenter comme illustré ci-après. Indiquez le chemin d'accès complet au fichier exécutablerclone
et n'oubliez pas de sauvegarder le fichier.#!/bin/sh /full/path/to/rclone sync /path/to/my/backup/directory RemoteName:newbucket
-
Rendez le script exécutable à l'aide de
chmod
.chmod +x backup.sh
-
Editez le fichier crontabs.
sudo crontab -e
-
Ajoutez une entrée au bas du fichier crontabs. Un fichier crontabs est simple : les cinq premières zones présentent, dans l'ordre, les minutes, les heures, les jours, les mois et les jours de la semaine. Utilisez * pour tout indiquer. Pour que le fichier
backup.sh
s'exécute tous les jours à 1h05, exécutez une commande qui ressemble à ceci :5 1 * * * /full/path/to/backup.sh
-
Sauvegardez le fichier crontabs. Vous pouvez commencer !