Utilisation de Rclone avec Pcloud

Dans ce tutoriel nous allons voir l’utilisation de Rclone. L’outil Rclone est utile pour assurer la synchronisation de répertoires et pour effectuer la migration des données entre les plateformes de stockage. Cet utilitaire multiplateforme est vraiment très pratique si vous êtes abonné à des services comme Dropbox, Pcloud, Drive…

Installation du logiciel Rclone

 Le tutoriel se déroulera sur Linux Ubuntu Server 18.04. Pour installer Rclone, vous devez utiliser la commande suivante :

# apt  install rclone -y

Installation du logiciel Rclone

Mise à jour du logiciel Rclone

Comme tout logiciel, il est important de mettre à jour Rclone. Pour cela l’auteur du logiciel à prévu une commande bien pratique pour mettre à jour Rclone.

rclone selfupdate --check

Mise à jour du logiciel Rclone

Rclone vous indique votre version actuelle, ici 1.62.2, la dernière version stable, ici 1.64.0, ainsi que la dernière version béta (à éviter si vous êtes sur un serveur en production).

Comme toute mise à jour, je vous conseille de lire le changelog avant : https://rclone.org/changelog/

Pour mettre à jour votre version de Rclone, vous devez utiliser cette commande :

rclone selfupdate --stable

Mise à jour du logiciel Rclone

Vérification de base de l’installation Rclone

Avant de vous lancer dans des synchronisations folles, nous allons utiliser quelques commandes pour s’assurer que notre configuration est valide et que nous accédons bien au cloud distant.

S’assurer que le fichier de config est bien créé.

# rclone config file

S’assurer que le fichier de config est bien créé pour Pcloud

Nous voyons ici que le fichier de config a bien été créé.

Afficher les accès distants de configurés. 

# rclone listremotes

Afficher les accès distants de configurés Rclone

Actuellement, nous avons un seul accès distant de paramétrer. Il s’agit de Pcloud.

Afficher la liste des répertoires à la racine.

# rclone lsd Pcloud:

Afficher la liste des répertoires à la racine.

 

Le résultat de cette commande est très important car elle nous confirme que l’accès à notre ressource cloud fonctionne correctement.

Utilisation de Rclone

 Un seul tutoriel ne suffirait pas à vous expliquer toutes les commandes de Rclone. Nous allons donc voir les principales, qui nous permettent de copier et synchroniser des fichiers.

Si vous souhaitez en savoir plus sur Rclone, vous pouvez cliquer sur ce lien : Les commandes de Rclone.

Voici quelques options pratiques communes aux différentes commandes :

  • -P permet d’afficher la progression de copie des fichiers ainsi que les statistiques de transferts.
  • –no-traverse permet de contrôler si rclone liste le répertoire de destination ou non. L’utilisation de cette option lors de la copie d’un petit nombre de fichiers dans un grand répertoire de destination peut accélérer considérablement les transferts.
  • –max-age 24h, si vous avez de nombreux fichiers dans /path/to/src mais que seuls quelques-uns d’entre eux changent chaque jour, vous pouvez copier tous les fichiers qui ont changé récemment. Dans cet exemple on ne transférera que les fichiers plus jeunes que 24 heures. Les suffixes utilisables sont ms|s|m|h|d|w|M|y
  • –log-level <Level>, vous pouvez adapter le niveau de log à afficher dans le fichier grâce à ces level DEBUG|INFO|NOTICE|ERROR. Debug étant le plus fourni et réservé pour des problèmes
  • -log-file <nom_fichier>, permet de tout enregistrer dans un fichier. Pour que les logs soient inscrits dans un fichier, il est nécessaire avant d’utiliser –log-level avec le niveau de d’information souhaité, sinon le fichier sera vide.
Astuce !!! Pour chaque commande exécutée avec rclone, je vous conseille de l’associer à un fichier de log, pour avoir le détail des transactions.

Rclone Copy

Cette commande peut-être utile pour mettre en place une sauvegarde de fichiers ou sauvegarder des données avant de faire une modification importante.

Cette commande copie des fichiers de la source vers la destination, en sautant les fichiers déjà copiés.  Ne transfère pas de fichiers inchangés, test par taille et heure de modification ou MD5SUM. Ne supprime pas non plus les fichiers de la destination.

Notez que c’est toujours le contenu du répertoire qui est synchronisé, et non le répertoire. Ainsi, 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.

Exemple de commande :

# rclone copy source:sourcepath dest:destpath
# rclone  copy /var/www/html/nextcloud/themes/ Pcloud:"pCloud Sync/VPS DYJIX XFILES/Backup_Nextcloud" -P

Rclone Copy

Rclone Sync

Cette commande permet rendre la source et la destination identiques, en modifiant uniquement la destination.

La synchronisation de la source avec la destination se fait en ne modifiant que la destination. Ne transfère pas de fichiers inchangés, en testant la taille et l’heure de modification ou MD5SUM. La destination est mise à jour pour correspondre à la source, y compris en supprimant des fichiers si nécessaire.

Important !!! Comme cela peut entraîner une perte de données, testez d’abord avec l’indicateur –-dry-run pour voir exactement ce qui sera copié et supprimé.

Notez que les fichiers dans la destination ne seront pas supprimés s’il y a eu des erreurs à un moment donné.

C’est toujours le contenu du répertoire qui est synchronisé, et non le répertoire. Ainsi, 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.

# rclone sync source:path dest:path [flags]
# rclone sync /var/www/html/nextcloud/themes/ Pcloud:"pCloud Sync/VPS DYJIX XFILES/Backup_Nextcloud" -P --log-level INFO --log-file pcloud.log

Rclone Sync

Contenu du fichier log :

Exemple de fichier de log généré par Rclone

Info !!! Les données sont ajoutées dans le fichier de log à chaque commande.

Rclone Purge

 Cette commande supprime le chemin et tout son contenu. Il est à noter que cela n’obéit pas aux filtres d’inclusion/exclusion, tout sera supprimé. Utilisez la fonction « delete » si vous souhaitez supprimer des fichiers de manière sélective.

# rclone purge remote:path [flags]
# rclone  purge Pcloud:"pCloud Sync/VPS DYJIX XFILES/Backup_Nextcloud" -P --log-level INFO --log-file pcloud.log

Rclone Purge

Rclone Check

Vérifie la correspondance entre les fichiers de la source et de la destination. Il compare les tailles et les hachages (MD5 ou SHA1) et consigne un rapport des fichiers qui ne correspondent pas. Il ne modifie ni la source ni la destination.

Si vous utilisez l’option –size-only, il ne comparera que les tailles et non les hachages. Utilisez-le pour une vérification rapide.

Si vous utilisez l’option –one-way, il vérifiera uniquement que les fichiers de la source correspondent aux fichiers de la destination, et non l’inverse. Cela signifie que les fichiers supplémentaires dans la destination qui ne sont pas dans la source ne déclencheront pas d’erreur.

# rclone check source:path dest:path [flags]
# rclone check /var/www/html/nextcloud/themes/ Pcloud:"pCloud Sync/VPS DYJIX XFILES/Backup_Nextcloud" -P --log-level INFO --log-file pcloud.log

Rclone Check

Fichier de log qui détaille le résultat de la commande :

Fichier de log généré par la commande Rclone Check

Rclone Mount

 Grâce à cette commande vous aller pouvoir monter un système de fichiers distant sur un point de montage local à votre système Linux. Vous pourrez donc l’utiliser comme un lecteur réseau. Rclone mount permet à Linux, FreeBSD, MacOS et Windows de monter n’importe quel de système de stockage dans le cloud avec FUSE.

# rclone mount remote:path/to/files /path/to/local/mount

Lorsque le programme se termine, soit par Ctrl+C, soit en recevant un signal SIGINT ou SIGTERM, le montage est automatiquement arrêté.

L’opération de montage peut échouer, par exemple lorsque le point de montage est occupé. Lorsque cela se produit, il incombe à l’utilisateur d’arrêter le montage manuellement avec la commande suivante :

# fusermount -u /path/to/local/mount

Pour pouvoir monter un lecteur de votre cloud, il faut d’abord installer Fuse.

# apt install fuse

Installer FURSE pour utiliser Rclone Mount

A quoi ça sert Fuse ?

FUSE, abréviation de Filesystem in Userspace, il est possible d’implémenter toutes les fonctionnalités d’un système de fichier dans un espace utilisateur. Ces fonctionnalités incluent :

  • une API de bibliothèque simple ;
  • une installation simple (pas besoin de patcher ou recompiler le noyau) ;
  • une implémentation sécurisée ;
  • utilisable dans l’espace utilisateur.

Aujourd’hui, pour monter un système de fichier, il faut être administrateur ou que celui-ci l’ait prévu dans « /etc/fstab » avec des informations en dur.

FUSE permet à un utilisateur de monter lui-même un système de fichier.

L’utilisation de la commande rclone mount est un peu spécial, car elle doit rester en arrière-plan afin de garder « monter » l’accès à votre ressource cloud. Pour cela nous allons utiliser un utilitaire bien pratique qui se nomme screen.

Screen est un « multiplexeur de terminaux » permettant d’ouvrir plusieurs terminaux dans une même console, de passer de l’un à l’autre et de les récupérer plus tard.

S’il n’est pas déjà installé sur votre distribution voici la commande :

# apt-get install -y screen

Créer un nouveau dossier vide à monter

# mkdir /mnt/pcloud

Créer un nouvel écran qui sera actif en background

# screen -S Pcloud

Exécutez la commande suivante pour monter le lecteur de votre cloud, ici Pcloud (commande optimiser pour Pcloud afin de limiter les accès à l’API pour éviter de se faire bannir).

rclone mount Pcloud: /mnt/pcloud --dir-cache-time 48h --buffer-size 64M --vfs-read-chunk-size 128M --vfs-read-chunk-size-limit 2G
Astuce !!! Pour se détacher de l’écran Pcloud que nous avons créé et laisser le daemon tourné en background, il suffit d’utiliser la combinaison de touches CTFL+a suivi de d.

Monter un lecteur Pcloud sur votre Linux avec Rclone

Si vous faites un ls de votre point de montage, vous verrez votre lecteur cloud apparaitre et vous pouvez faire des copies comme si vous étiez en local.

Quelques commandes utiles pour l’utilitaire Screen

 Lister tous les écrans

# screen -ls

Quelques commandes utiles pour l’utilitaire Screen

Nous voyons ici que le screen 32001.Pcloud est actif et que nous ne sommes pas dessus (Detached).

S’attacher à un bureau virtuel

 Si maintenant vous souhaitez revenir sur un bureau virtuel, voici la commande à utiliser. La première commande permet juste d’afficher les bureaux virtuels en cours d’exécution (voir plus haut)

# screen -ls
# screen dr Num_Bureau

Quelques commandes utiles pour l’utilitaire Screen

Pour fermer un écran virtuel complètement et laisser tourner la tâche :

# CTRL+d

Pour se détacher du screen et deloguer le terminal (arrêter)

# CTRL + D

Envoyer une commande à un terminal :

# screen -S <nom> -X <commande>

Supprimer un screen

# screen -S num_screen -p 0 -X quit
# screen -S 32001.Pcloud -p 0 -X quit

Il faudrait consacrer un tutoriel entier à l’utilisation de screen. Je ne connaissais pas cet utilitaire qui est vraiment très pratique. Si vous avez un peu de mal pour utiliser Linux, n’hésiter pas à consulter mes astuces pour bien utiliser Linux.

Signature Manuelle Guillaume

1 potin

  1. Un grand merci pour ton tuto.
    Je bataillais depuis 4h ;)

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *