Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
rclone [Le 09/11/2024, 15:58] krodelabestiole [Test] + dry-run + rclone check |
rclone [Le 06/06/2025, 10:13] (Version actuelle) krodelabestiole rclone browser abandonné |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | {{tag>synchronisation réseau internet cloud sauvegarde}} | + | {{tag>synchronisation réseau internet fichiers cloud sauvegarde}} |
{{ :logo:rclone.png?120|Logo de Rclone}} | {{ :logo:rclone.png?120|Logo de Rclone}} | ||
Ligne 5: | Ligne 5: | ||
====== Rclone ====== | ====== Rclone ====== | ||
- | **[[wp>Rclone]]** est un logiciel libre qui permet initialement de synchroniser des répertoires et des fichiers sur de nombreuses plateformes de stockage différentes. Il dispose maintenant de très nombreuses fonctionnalités de [[gestionnaire de fichiers|gestion de fichiers]] sur de très nombreuses plateformes //[[:cloud]]//. | + | **[[wp>Rclone]]** est un logiciel libre qui permet de synchroniser des répertoires et des fichiers sur de nombreuses plateformes de stockage différentes. Il dispose en plus de nombreuses fonctionnalités de [[:gestionnaire de fichiers|gestion de fichiers]] à distance sur de très nombreuses plateformes //[[:cloud]]//. |
- | Initialement il offre un fonctionnement similaire à [[:rsync]] (il se présente lui-même comme "rsync, pour le stockage cloud"(([[https://github.com/rclone/rclone|GitHub]] : //rsync for cloud storage//))) : il rend la source et la destination identiques en ne modifiant que la destination.\\ | + | Initialement il offre un fonctionnement similaire à **[[:rsync]]** (il se présente lui-même comme "rsync, pour le stockage cloud"(([[https://github.com/rclone/rclone|GitHub]] : //rsync for cloud storage//))) : il rend la source et la destination identiques en ne modifiant que la destination.\\ |
- | Désormais il propose aussi de monter tous types de stockages distants en système de fichier, implémente différentes méthodes de synchronisation bidirectionnelle, et fournit ses propres implémentations optimisées d'outils comme [[:analyseur_usage_espace_disque#en_mode_terminal|ncdu]]. | + | Désormais il propose aussi de monter tous types de stockages distants en système de fichier, implémente différentes méthodes de synchronisation bidirectionnelle, et fournit ses propres implémentations optimisées d'outils comme **[[:analyseur_usage_espace_disque#en_mode_terminal|ncdu]]**. |
C'est un outil en [[:commande_shell|ligne de commande]], mais il existe des interfaces graphiques et il inclut lui-même une interface web. | C'est un outil en [[:commande_shell|ligne de commande]], mais il existe des interfaces graphiques et il inclut lui-même une interface web. | ||
- | [[:rsync]] est très largement utilisé sur Linux pour la copie et synchronisation de fichiers, que ce soit localement ou via le protocole [[:SSH]].\\ | + | Grand frère de R**CLONE**, **[[:rsync]]** est très largement utilisé sur Linux pour la copie et synchronisation de fichiers, que ce soit localement ou via le protocole [[:SSH]].\\ |
- | Il montre cependant ses limites lorsqu'il s'agit de copier du contenu sur des services tiers ou certains protocoles comme le [[:WebDAV]]. Les fonctions ne sont pas implémentées ou s'avère extrêmement peu performantes combinées à l'utilisation de [[:FUSE]] (pour "faire croire" à rsync qu'il s'agit d'un montage local, comme par exemple [[:davfs2]] pour accéder à un serveur [[:WebDAV]], ou [[:fusesmb]] pour les partages [[:Samba|CIFS ou SMB]]). | + | Il montre cependant ses limites lorsqu'il s'agit de copier du contenu sur des services tiers ou certains protocoles comme le [[:WebDAV]]. Les fonctions ne sont pas implémentées ou s'avèrent extrêmement peu performantes combinées à l'utilisation de **[[:FUSE]]** (pour "faire croire" à **rsync** qu'il s'agit d'un montage local, comme par exemple **[[:davfs2]]** pour accéder à un serveur [[:WebDAV]], ou **[[:fusesmb]]** pour les partages [[:Samba|CIFS / SMB]]). |
- | R**CLONE** est extrêmement performant dans toutes ces situations sans nécessiter d'optimisations particulières (en WebDAV on peut s'attendre à multiplier les vitesses de transferts de rsync ou de certains clients par 50 !). | + | R**CLONE** est extrêmement performant dans toutes ces situations sans nécessiter d'optimisation particulière (en WebDAV on peut s'attendre à multiplier les vitesses de transferts de **rsync** ou de certains clients par 50 !). |
Il prend en charge une quantité sidérante de protocoles et de fournisseurs de services [[:cloud]], dans la [[https://github.com/rclone/rclone#storage-providers|liste desquels]] on peut citer : | Il prend en charge une quantité sidérante de protocoles et de fournisseurs de services [[:cloud]], dans la [[https://github.com/rclone/rclone#storage-providers|liste desquels]] on peut citer : | ||
Ligne 46: | Ligne 46: | ||
<note warning> | <note warning> | ||
- | Ni R**CLONE**, ni Rclone Browser ne sont malheureusement traduits en français pour le moment. Il est donc compliqué de les utiliser sans maîtriser un minimum la langue de John Cleese. N'hésitez pas à demander de l'aide sur le [[https://forum.ubunut-fr.org|forum]] si besoin ! | + | R**CLONE** n'est malheureusement pas traduit en français pour le moment. Il est donc compliqué de l'utiliser sans maîtriser un minimum la langue de John Cleese. N'hésitez pas à demander de l'aide sur le [[https://forum.ubuntu-fr.org|forum]] si besoin ! |
</note> | </note> | ||
Ligne 52: | Ligne 52: | ||
R**CLONE** est disponible dans les [[:depots#dépôts officiels]] d'Ubuntu.\\ | R**CLONE** est disponible dans les [[:depots#dépôts officiels]] d'Ubuntu.\\ | ||
- | Pour l'installer il suffit donc d'[[:tutoriel:comment_installer_un_paquet|installer le paquet]] **[[apt>rclone]].** | + | Pour l'installer il suffit donc d'[[:tutoriel:comment_installer_un_paquet|installer le paquet]] ''[[apt>rclone]]''. |
R**CLONE** est aussi disponible en [[:Snap]] depuis [[https://snapcraft.io/rclone|Snapcraft]]. | R**CLONE** est aussi disponible en [[:Snap]] depuis [[https://snapcraft.io/rclone|Snapcraft]]. | ||
+ | |||
+ | ==== Dernière version ==== | ||
+ | |||
+ | Une fois installé, on peut mettre à jour le logiciel à sa dernière version stable très simplement grâce à la commande ''[[https://rclone.org/commands/rclone_selfupdate/|selfupdate]]'' : | ||
+ | <code>sudo rclone selfupdate</code> | ||
===== Configuration ===== | ===== Configuration ===== | ||
- | On peut configurer R**CLONE** avec un outil interactif en ligne de commande. | + | La configuration de R**CLONE** se fait par défaut via le fichier ''~/.config/rclone/rclone.conf'', avec une entrée (un paragraphe) pour chaque "//remote//" (il s'agit à chaque fois d'un espace de stockage distant). Le nom de l'entrée est entre crochets ''[]'', suivi des différents paramètres permettant de se connecter au service distant. |
- | Entrez la commande suivante dans un [[:terminal]] : | + | R**CLONE** dispose en plus d'un assistant interactif en ligne de commande, qui permet de créer facilement ces entrées dans le fichier de configuration. C'est probablement le plus pratique pour commencer.\\ |
+ | Entrez la commande suivante dans un [[:terminal]] : | ||
rclone config | rclone config | ||
Ligne 68: | Ligne 74: | ||
* Dans un premier temps tapez ''n'' pour //New remote// (nouveau stockage distant). | * Dans un premier temps tapez ''n'' pour //New remote// (nouveau stockage distant). | ||
* Entrez un identifiant au choix pour ce stockage, par ex. ''monServeur''. Évitez les espaces et les caractères spéciaux (accents, etc.) ! | * Entrez un identifiant au choix pour ce stockage, par ex. ''monServeur''. Évitez les espaces et les caractères spéciaux (accents, etc.) ! | ||
- | * Une liste impressionnante de protocoles / prestataire vous est proposée dans l'ordre alphabétique. Choisissez celui que vous utilisez en tapant son numéro. | + | * Une liste impressionnante de protocoles et prestataires vous est proposée dans l'ordre alphabétique. Choisissez celui que vous utilisez en tapant son numéro. |
* Si vous utilisez [[:Nextcloud]] ou [[:ownCloud]], choisissez //WebDAV// dans un premier temps.((au sujet de [[:Nextcloud]], voir [[https://forum.ubuntu-fr.org/viewtopic.php?pid=22733253#p22733253|ce message]] sur le forum)) | * Si vous utilisez [[:Nextcloud]] ou [[:ownCloud]], choisissez //WebDAV// dans un premier temps.((au sujet de [[:Nextcloud]], voir [[https://forum.ubuntu-fr.org/viewtopic.php?pid=22733253#p22733253|ce message]] sur le forum)) | ||
* En fonction du choix précédent vous devrez entrer des informations de connexion. | * En fonction du choix précédent vous devrez entrer des informations de connexion. | ||
Ligne 90: | Ligne 96: | ||
<note tip>Mettez un espace avant '' rclone obscure'' afin d’éviter d’enregistrer votre mot de passe en clair dans l’[[:bash#bash_history|historique bash]] !</note> | <note tip>Mettez un espace avant '' rclone obscure'' afin d’éviter d’enregistrer votre mot de passe en clair dans l’[[:bash#bash_history|historique bash]] !</note> | ||
+ | |||
+ | ==== Exemples ==== | ||
+ | |||
+ | <file ini rclone.conf> | ||
+ | [nextcloud] | ||
+ | type = webdav | ||
+ | url = https://nextcloud.exemple.com/remote.php/dav/files/utilisateur | ||
+ | vendor = nextcloud | ||
+ | user = utilisateur | ||
+ | pass = **************** | ||
+ | |||
+ | [serveur-sftp] | ||
+ | type = sftp | ||
+ | host = ftp.exemple.com | ||
+ | user = utilisateur | ||
+ | shell_type = unix | ||
+ | md5sum_command = md5sum | ||
+ | sha1sum_command = sha1sum | ||
+ | |||
+ | [freebox-smb] | ||
+ | type = smb | ||
+ | host = freebox-server.local | ||
+ | user = guest | ||
+ | |||
+ | [freebox-ftpes] | ||
+ | type = ftp | ||
+ | host = exemple.freeboxos.fr | ||
+ | user = freebox | ||
+ | port = 1234 | ||
+ | pass = **************** | ||
+ | explicit_tls = true | ||
+ | |||
+ | [kDrive] | ||
+ | type = webdav | ||
+ | url = https://123456.connect.kdrive.infomaniak.com | ||
+ | vendor = Infomaniak | ||
+ | user = utilisateur@exemple.com | ||
+ | pass = **************** | ||
+ | |||
+ | [put.io] | ||
+ | type = putio | ||
+ | token = {"access_token":"****************","expiry":"0001-01-01T00:00:00Z"} | ||
+ | |||
+ | [gdrive] | ||
+ | type = drive | ||
+ | client_id = 123456-abcdef123456.apps.googleusercontent.com | ||
+ | client_secret = XXXXXXXXXXXXXXXX | ||
+ | token = {"access_token":"XXXXXXXXXXXXXXXX","token_type":"Bearer","refresh_token":"XXXXXXXXXXXXXXXX","expiry":"0001-01-01T00:00:00.00+02:00"} | ||
+ | scope = drive | ||
+ | </file> | ||
+ | |||
+ | Ces exemples sont évidemment à ajuster, en fonction des services auxquels on souhaite se connecter : | ||
+ | * ''utilisateur'' correspond à un identifiant ou nom d'utilisateur. | ||
+ | * ''exemple.com'' correspond à un nom de domaine. | ||
+ | * ''1234'' ou ''123456'' correspondent à des numéros de port, ou des identifiants uniques. | ||
+ | * ''XXXXXXXXXXXXXXXX'' correspond à une clé unique. | ||
+ | * ''%%****************%%'' correspond à un mot de passe chiffré au moyen de la commande ''rclone obscure''. | ||
+ | |||
+ | <note> | ||
+ | Pour **Google Drive** (''gdrive'' dans ces exemples) l'opération est complexe. | ||
+ | |||
+ | Il faut créer un accès à l'[[https://console.cloud.google.com/apis/api/drive.googleapis.com|API correspondante]]((Voir la [[https://rclone.org/drive/#making-your-own-client-id|documentation Rclone]] en anglais, [[https://developers.google.com/workspace/guides/configure-oauth-consent?hl=fr|celle de Google]] pourra aussi être utile.)) et soigneusement noter (dans un [[:securite#logiciels_de_gestion_de_mots_de_passe|gestionnaire de mots de passe]]) : | ||
+ | * votre ''ID client'' | ||
+ | * et son ''Code secret'' associé. | ||
+ | Il vaut sans doute mieux renseigner ces informations avec la commande ''rclone config'' (plutôt qu'éditer directement le fichier de configuration), car R**CLONE** doit encore ouvrir une page du navigateur afin d'autoriser sa connexion chez Google et de générer le ''token''.\\ | ||
+ | Sinon pour cette dernière opération on peut aussi utiliser la commande : | ||
+ | <code>rclone config reconnect gdrive:</code> | ||
+ | |||
+ | ---- | ||
+ | |||
+ | La connexion aux autres services est //beaucoup// plus simple à configurer. N'hésitez donc pas à opter pour un [[:cloud |service cloud]] respectueux de votre [[:anonymat#cloud|vie privée]] (et de celle de vos correspondants) ! | ||
+ | </note> | ||
==== Test ==== | ==== Test ==== | ||
Ligne 98: | Ligne 176: | ||
* Vous pouvez adapter la commande ''rclone about monServeur:'' pour obtenir des informations sur le service (espace disponible). Ceci permet aussi de confirmer que votre service est bien configuré. | * Vous pouvez adapter la commande ''rclone about monServeur:'' pour obtenir des informations sur le service (espace disponible). Ceci permet aussi de confirmer que votre service est bien configuré. | ||
* ''rclone ls monServeur:'' permet de lister les fichiers et répertoires du stockage distant (comme avec la commande [[:tutoriel:console_commandes_de_base#ls]]). | * ''rclone ls monServeur:'' permet de lister les fichiers et répertoires du stockage distant (comme avec la commande [[:tutoriel:console_commandes_de_base#ls]]). | ||
- | * L'option ''--dry-run'' permet d'afficher le retour d'une commande sans l'exécuter effectivement. | + | * L'option ''%%--%%dry-run'' permet d'afficher le retour d'une commande sans l'exécuter effectivement. |
* ''rclone check'' affiche également la différence d'état entre les fichiers locaux et distants. | * ''rclone check'' affiche également la différence d'état entre les fichiers locaux et distants. | ||
Ligne 117: | Ligne 195: | ||
Par exemple : ''monServeur:/chemin/absolu'' ou ''monServeur:chemin/relatif''. | Par exemple : ''monServeur:/chemin/absolu'' ou ''monServeur:chemin/relatif''. | ||
- | <note tip>Dans un premier temps vous pouvez tester votre commande sans danger et sans toucher à aucun fichiers avec l'option ''--dry-run'' : | + | <note tip>Dans un premier temps vous pouvez tester votre commande sans danger et sans toucher à aucun fichiers avec l'option ''%%--%%dry-run'' : |
<code>rclone sync --update --progress --dry-run [source] [destination]</code></note> | <code>rclone sync --update --progress --dry-run [source] [destination]</code></note> | ||
Ligne 228: | Ligne 306: | ||
Il est aussi possible d'utiliser R**CLONE** graphiquement : | Il est aussi possible d'utiliser R**CLONE** graphiquement : | ||
+ | * R**CLONE** propose nativement une interface web. Vous pouvez la lancer et l'ouvrir dans votre navigateur avec la commande : <code>rclone rcd --rc-web-gui</code> | ||
+ | * **[[https://github.com/pieterdd/RcloneShuttle|Rclone Shuttle]]** est une interface GTK, donc idéale pour [[:GNOME]], disponible en [[:Flatpak]] depuis [[https://flathub.org/apps/io.github.pieterdd.RcloneShuttle|Flathub]]. | ||
+ | |||
+ | <note tip>On peut aussi évidemment utiliser le [[:gestionnaire de fichiers]] de son choix, tel que [[:nautilus|GNOME Fichiers]], en [[#montage|montant]] le stockage distant en système de fichiers.</note> | ||
+ | |||
+ | ===== Problèmes connus ===== | ||
+ | |||
+ | ==== Impossible de mettre à jour automatiquement ==== | ||
+ | |||
+ | Il arrive que la commande : | ||
+ | rclone selfupdate | ||
+ | |||
+ | retourne une erreur du type : | ||
+ | Error: failed to update rclone: invalid hashsum signature | ||
+ | |||
+ | Ceci est dû à un changement de bibliothèque récent.((**[[wpfr>OpenPGP]]**, voir cette [[https://github.com/rclone/rclone/issues/7373|issue GitHub]])) | ||
- | * [[https://kapitainsky.github.io/RcloneBrowser/|Rclone Browser]] est disponible dans les [[:depots#sections_universe_et_multiverse_maintenues_par_les_motu|dépôts universe]] d'Ubuntu. Vous pouvez donc [[:tutoriel:comment_installer_un_paquet|installer le paquet]] **[[apt>rclone-browser]].** | + | La solution est de mettre à jour R**CLONE** manuellement.\\ |
- | * R**CLONE** propose lui-même une interface web. Vous pouvez la lancer et l'ouvrir dans votre navigateur avec la commande : <code>rclone rcd --rc-web-gui</code> | + | Vous pouvez télécharger sur [[https://github.com/rclone/rclone/releases|GitHub]] la dernière version du paquet [[:deb]] qui correspond à votre système (généralement ''linux-amd64.deb''), et l'installer, avec par exemple [[:gdebi]], ou en ligne de commande avec [[:dpkg]] : |
+ | sudo dpkg -i ~/Téléchargements/rclone-*-linux-amd64.deb | ||
===== Voir aussi ===== | ===== Voir aussi ===== | ||
Ligne 237: | Ligne 332: | ||
* [[https://github.com/rclone/rclone|sources sur GitHub]] | * [[https://github.com/rclone/rclone|sources sur GitHub]] | ||
* Tutoriel : [[:tutoriel:monter_un_cloud|Monter un cloud comme disque local avec rclone]] | * Tutoriel : [[:tutoriel:monter_un_cloud|Monter un cloud comme disque local avec rclone]] | ||
+ | * [[:Restic]] permet d'utiliser n'importe quel stockage distant R**CLONE** pour y effectuer des sauvegardes de manière particulièrement simple et performante. | ||
---- | ---- | ||
//Contributeur : [[:utilisateurs:krodelabestiole]]// | //Contributeur : [[:utilisateurs:krodelabestiole]]// |