Comment utiliser rclone pour sauvegarder sur Google Drive sous Linux



Bien qu’il n’existe toujours pas de client officiel Google Drive pour Linux, il est tout à fait possible de réaliser des sauvegardes sur votre espace Google Drive en utilisant l’outil rclone, directement depuis votre terminal. Voici comment procéder.

L’absence de client Google Drive natif sous Linux

Malgré une annonce prometteuse en 2012 concernant un support Linux « à venir », il semble que Google ne compte pas proposer de client natif pour Google Drive sur Linux. Cependant, plusieurs alternatives non officielles sont disponibles, telles que InSync, overGrive et ODrive. De plus, certains gestionnaires de fichiers, comme Fichiers dans l’environnement GNOME, offrent une intégration avec Google Drive.

Ces applications tierces sont généralement payantes, que ce soit par un achat unique ou un abonnement. Bien qu’elles soient efficaces et abordables, certaines, comme overGrive, proposent une version gratuite avec des fonctionnalités limitées.

Mais comment faire si vous souhaitez effectuer des sauvegardes depuis la ligne de commande, ou intégrer cette fonctionnalité dans des scripts ? C’est là qu’intervient rclone, un outil puissant qui permet de sauvegarder, télécharger et synchroniser des fichiers avec plus de quarante services cloud différents. On peut le considérer comme l’équivalent de rsync pour le cloud.

Installation de rclone sur votre système

rclone n’est généralement pas installé par défaut sur les distributions Linux. Heureusement, un script d’installation existe et fonctionne sur la plupart des distributions. Ce script utilise curl. Il est possible que curl soit déjà installé sur votre système, comme c’était le cas sur Fedora 31 et Manjaro 18.1.0, mais il faudra peut-être l’installer, comme sur Ubuntu 18.04 LTS.

Pour installer curl sur Ubuntu, utilisez cette commande :

sudo apt-get install curl

Une fois curl installé, vous pouvez installer rclone avec cette commande :

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

L’installation réussie de rclone sera confirmée par un message.

Le programme rclone est désormais installé sur votre machine. La prochaine étape consiste à configurer rclone pour qu’il puisse accéder à votre Google Drive.

Configurer une connexion à distance avec rclone

Dans rclone, les connexions à des services cloud distants sont appelées « télécommandes ». Nous devons en créer une pour Google Drive. Démarrez la configuration de rclone avec la commande suivante :

rclone config

Le processus de configuration comporte plusieurs questions, mais ne vous inquiétez pas, la plupart peuvent être laissées à leurs valeurs par défaut et validées avec la touche « Entrée ».

rclone vous indiquera qu’aucune télécommande n’est configurée. Tapez « n » et appuyez sur « Entrée » pour en créer une nouvelle. Il vous sera demandé de lui donner un nom. Nommons-la « google-drive ». Vous pouvez choisir le nom que vous souhaitez.

Un long menu vous permettra de sélectionner le type de stockage auquel vous voulez vous connecter.

Parcourez la liste jusqu’à l’entrée Google Drive et notez son numéro.

Dans cet exemple, il s’agit du numéro 13. Entrez ce numéro comme type de stockage et appuyez sur « Entrée ».

Il vous sera demandé d’entrer un identifiant client Google. Appuyez sur « Entrée » pour accepter la valeur par défaut.

Ensuite, il vous sera demandé d’entrer un secret client d’application Google.

Appuyez une nouvelle fois sur « Entrée ». On vous demandera ensuite de spécifier la portée d’accès de rclone à votre Google Drive. Entrez « 1 » puis appuyez sur « Entrée ».

Pour l’ « ID du dossier racine », appuyez simplement sur « Entrée ».

À l’invite « Informations d’identification du compte de service », appuyez sur « Entrée ».

À l’invite « Modifier la configuration avancée », appuyez simplement sur « Entrée ». Dans le menu « Utiliser la configuration automatique », appuyez sur « y », puis sur « Entrée ».

rclone va alors communiquer avec votre Google Drive et ouvrir votre navigateur pour vous permettre d’autoriser rclone à accéder à votre espace.

Dans la fenêtre de votre navigateur, sélectionnez le compte Google que vous souhaitez utiliser.

Cliquez sur le bouton « Autoriser » pour donner à rclone la permission d’accéder à votre Google Drive.

Une fois l’authentification réussie, vous verrez un message « Succès ! » dans la fenêtre du navigateur. Vous pouvez alors fermer le navigateur et retourner dans la fenêtre du terminal.

À l’invite « Configurer ceci en tant que lecteur d’équipe », tapez « n » puis appuyez sur « Entrée ».

Dans le menu « Oui, modifier, supprimer », tapez « y » puis appuyez sur « Entrée ».

Dans le dernier menu, tapez « q » et appuyez sur « Entrée ».

Le script de sauvegarde rclone

rclone est un outil très complet qui offre de nombreuses possibilités. Pour autant, sa documentation est dense et les options sont nombreuses. La commande que nous allons utiliser ici permet de copier des fichiers de votre ordinateur local vers votre Google Drive. Il s’agit d’une copie unidirectionnelle vers le cloud et non d’une synchronisation bidirectionnelle, bien que rclone puisse le faire. Nous l’utilisons comme solution de sauvegarde hors site de base.

Copiez ou tapez le script suivant dans un éditeur de texte et enregistrez-le sur votre ordinateur. Nous l’avons appelé gbk.sh, mais vous pouvez lui donner le nom de votre choix.

#!/bin/bash

/usr/bin/rclone copy --update --verbose --transfers 30 --checkers 8 --contimeout 60s --timeout 300s --retries 3 --low-level-retries 10 --stats 1s "/home/dave/Documents" "google-drive:LinuxDocs"

Voici la signification des paramètres utilisés :

  • copy: permet de copier les fichiers de l’ordinateur local vers le stockage distant en ignorant les fichiers déjà présents sur ce dernier.
  • --update: ignore les fichiers présents sur le stockage distant dont la date de modification est plus récente que le fichier équivalent sur l’ordinateur local.
  • --verbose: affiche des informations détaillées sur chaque fichier transféré.
  • --transfers 30: définit le nombre de fichiers à copier en parallèle.
  • --checkers 8: définit le nombre de « checkers » à exécuter en parallèle. Les « checkers » surveillent les transferts en cours.
  • --contimeout 60s: définit le délai d’attente maximal pour une connexion. C’est le temps pendant lequel rclone tente de se connecter au stockage distant.
  • --timeout 300s: si un transfert devient inactif pendant ce temps, il est considéré comme interrompu.
  • --retries 3: si une action de copie échoue à 3 reprises, l’action entière est redémarrée.
  • --low-level-retries 10: le nombre de tentatives pour répéter une opération ayant échoué, comme une requête HTTP unique.
  • --stats 1s: rclone affiche des statistiques sur les fichiers transférés. Ce paramètre définit la fréquence de mise à jour de ces statistiques, ici à une seconde.
  • "/home/dave/Documents": le répertoire local à copier vers le stockage distant.
  • "google-drive:LinuxDocs": le répertoire de destination dans le stockage distant. Remarquez l’utilisation de « google-drive », le nom que nous avons donné à notre connexion distante lors de la configuration de rclone, et les deux points « : » qui servent de séparateur entre le nom du stockage distant et le nom du répertoire. Les sous-répertoires se séparent par une barre oblique classique « / ». Si le répertoire de destination n’existe pas, il sera créé.

Certaines de ces valeurs sont les valeurs par défaut, mais nous les avons incluses afin de les expliciter. Ainsi, si vous devez modifier une valeur, vous saurez quel paramètre ajuster.

Rendez le script exécutable avec la commande :

chmod +x gbk.sh

Exécution du script de sauvegarde

Notre script va copier le contenu de notre dossier « Documents » vers notre Google Drive. Nous avons une collection de partitions dans notre dossier « Documents ».

Pour lancer le script de sauvegarde, exécutez la commande suivante :

./gbk.sh

Comme nous avons demandé des mises à jour des statistiques chaque seconde (--stats 1s) et une sortie détaillée (--verbose), nous aurons beaucoup d’informations affichées à l’écran. Activer la sortie détaillée est généralement une bonne option pour tester de nouvelles fonctionnalités et détecter d’éventuels problèmes. Vous pourrez réduire le niveau d’informations affichées une fois que vous serez sûr que tout fonctionne correctement.

À la fin de l’opération, un résumé indique que 60 fichiers ont été transférés sans erreur en environ 24 secondes.

Vérifions maintenant notre Google Drive pour voir ce qui s’est passé.

Un répertoire « LinuxDocs » a bien été créé. Si nous l’ouvrons, nous constatons que les fichiers ont bien été transférés vers notre Google Drive.

Utiliser rclone pour lister les fichiers sur Google Drive

Nous pouvons utiliser rclone pour afficher le contenu d’un dossier sur Google Drive directement dans la fenêtre du terminal :

rclone ls google-drive:/LinuxDocs

Bien plus que la surface

Il est très pratique de pouvoir effectuer ce type de copie directement depuis la ligne de commande. Vous pouvez ainsi intégrer l’utilisation de votre stockage cloud dans des scripts et planifier l’exécution de sauvegardes à l’aide de cron.

rclone propose une multitude de commandes et nous vous encourageons à consulter sa documentation et son excellent site web. Nous n’avons ici qu’effleuré la surface de ses capacités, et en explorant rclone, vous gagnerez en productivité.

Attention, il ne s’agit pas d’une véritable solution de sauvegarde. Il s’agit d’une copie distante de vos fichiers et données, ce qui est une bonne chose, mais elle ne propose pas de gestion de version ou d’autres fonctionnalités offertes par les véritables solutions de sauvegarde.

Utilisez donc rclone en complément d’autres techniques de sauvegarde. Il permet d’ajouter une couche supplémentaire à votre stratégie de sauvegarde en stockant vos données dans un endroit géographiquement éloigné de votre domicile ou de votre bureau. Et c’est un avantage non négligeable.