Recherche de site Web

Rclone - Synchroniser les répertoires de fichiers à partir de différents stockages cloud


Rclone est un programme en ligne de commande écrit en langage Go, utilisé pour synchroniser des fichiers et répertoires de différents fournisseurs de stockage cloud tels que : Amazon Drive, Amazon S3, Backblaze B2, Box, Ceph, DigitalOcean Spaces, Dropbox, FTP, Google Cloud Storage, Google Drive, etc.

Comme vous le voyez, il prend en charge plusieurs plates-formes, ce qui en fait un outil utile pour synchroniser vos données entre serveurs ou vers un stockage privé.

Rclone est livré avec les fonctionnalités suivantes

  • Le hachage MD5/SHA1 vérifie à tout moment l’intégrité des fichiers.
  • Les horodatages sont conservés sur les fichiers.
  • Synchronisations partielles prises en charge sur la base d'un fichier entier.
  • Mode copie pour les fichiers nouveaux ou modifiés.
  • Synchronisation à sens unique pour rendre un répertoire identique.
  • Mode de vérification – vérification de l’égalité de hachage.
  • Peut se synchroniser vers et depuis le réseau, par exemple deux comptes cloud différents.
  • Backend (chiffrement).
  • (Cache) back-end.
  • (Union) back-end.
  • Support FUSE en option (montage rclone).

Comment installer rclone sur les systèmes Linux

L'installation de rclone peut être réalisée de deux manières différentes. Le plus simple consiste à utiliser leur script d'installation, en exécutant la commande suivante.

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

Ce script vérifie le type de système d'exploitation sur lequel il est exécuté et télécharge l'archive associée à ce système d'exploitation. Ensuite, il extrait l'archive et copie le binaire rclone dans /usr/bin/rclone et accorde les autorisations 755 sur le fichier.

Au final, une fois l'installation terminée, vous devriez voir la ligne suivante :

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

La deuxième façon d'installer rclone consiste à exécuter les commandes suivantes.

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

Copiez maintenant le fichier binaire et accordez-lui les autorisations exécutables.

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

Installez la page de manuel rclone.

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

Comment configurer rclone sur les systèmes Linux

Ensuite, vous devrez exécuter la configuration rclone pour créer votre fichier de configuration. Il sera utilisé pour l'authentification pour une utilisation future de rclone. Pour exécuter la configuration, exécutez la commande suivante.

rclone config

Vous verrez l'invite suivante :

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>

Les options sont les suivantes :

  • n) – Créer une nouvelle connexion à distance
  • s) – définissez la protection par mot de passe pour votre configuration
  • q) – quittez la configuration

Pour les besoins de ce didacticiel, appuyons sur "n" et créons une nouvelle connexion. Il vous sera demandé de donner un nom à la nouvelle connexion. Après cela, vous serez invité à sélectionner le type de stockage à configurer :

J'ai nommé par connexion « Google » et sélectionné « Google Drive », qui porte le numéro 12. Vous pouvez répondre au reste des questions en laissant simplement la réponse par défaut, qui est un « » vide.

Lorsque vous y êtes invité, vous pouvez sélectionner « autoconfig », qui générera toutes les informations requises pour vous connecter à votre Google Drive et accordera les autorisations rclone à utiliser les données de Google Drive.

Le processus ressemble à ceci :

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

Comment utiliser rclone dans les systèmes Linux

Rclone dispose d'une assez longue liste d'options et de commandes disponibles à utiliser. Nous allons essayer de couvrir certains des plus importants :

Répertorier le répertoire distant

rclone lsd <remote-dir-name>:

Copier des données avec rclone

rclone copy source:sourcepath dest:destpath

Notez que si rclone trouve des doublons, ceux-ci seront ignorés :

Synchroniser les données avec rclone

Si vous souhaitez synchroniser certaines données entre répertoires, vous devez utiliser rclone avec la commande sync.

La commande devrait ressembler à ceci :

rclone sync source:path dest:path [flags]

Dans ce cas, la source est synchronisée avec la destination, en changeant uniquement la destination ! Cette méthode ignore les fichiers inchangés. Étant donné que la commande peut entraîner une perte de données, vous pouvez l'utiliser avec « –dry-run » pour voir exactement ce qui sera copié et supprimé.

Déplacer des données avec rclone

Pour déplacer des données, vous pouvez utiliser rclone avec la commande move. La commande devrait ressembler à ceci :

rclone move source:path dest:path [flags]

Le contenu de la source sera déplacé (supprimé) et placé sur la destination sélectionnée.

Autres commandes rclone utiles

Pour créer un répertoire sur la destination.

rclone mkdir remote:path

Pour supprimer un répertoire.

rclone rmdir remote:path

Vérifiez si les fichiers source et destination correspondent :

rclone check source:path dest:path

Supprimer les fichiers:

rclone delete remote:path

Chacune des commandes rclone peut être utilisée avec différents indicateurs et comprend son propre menu d'aide. Par exemple, vous pouvez effectuer une suppression sélective à l'aide de l'option de suppression. Disons que vous souhaitez supprimer des fichiers de plus de 100 Mo, la commande ressemblerait à ceci.

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

Il est fortement recommandé de consulter le manuel et l'aide de chaque commande pour tirer le meilleur parti de rclone. La documentation complète de rclone est disponible sur : https://rclone.org/

Conclusion

rclone est un puissant utilitaire de ligne de commande pour vous aider à gérer les données entre différents fournisseurs de stockage Cloud. Bien que dans cet article nous n'ayons fait qu'effleurer la surface des capacités de rclone, il reste encore beaucoup à faire, surtout lorsqu'il est utilisé en combinaison avec le service cron (par exemple).