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 24/01/2024, 12:51] krodelabestiole + test + serveur |
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 sur de très nombreuses plateformes. | + | **[[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 67: | Ligne 73: | ||
* 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 le nom du stockage (pour vous y retrouver), par ex. ''monServeur''. | + | * 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. 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)) | + | * 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)) | ||
* 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. | ||
+ | * Si vous utilisez [[:Nextcloud]] ou [[:ownCloud]] prennez soin d'indiquer [[:nextcloud#fichiers|l'adresse WebDAV correcte]]. | ||
* Pas besoin d'éditer de configuration avancée : //Edit advanced config?// -> tapez ''n'' (ou simplement //Entrée//). | * Pas besoin d'éditer de configuration avancée : //Edit advanced config?// -> tapez ''n'' (ou simplement //Entrée//). | ||
* ''y'' ou //Entrée// pour valider la configuration. | * ''y'' ou //Entrée// pour valider la configuration. | ||
Ligne 88: | 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 ==== | ||
- | Ces commandes peuvent être utile pour tester votre configuration : | + | Ces commandes peuvent être utiles pour tester votre configuration : |
* ''rclone listremotes'' permet de lister les stockages distants configurés. | * ''rclone listremotes'' permet de lister les stockages distants configurés. | ||
- | * Vous pouvez adapter la commande ''rclone about monServeur:'' pour obtenir des informations sur le service (espace disponible). Ceci permet 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. | ||
+ | * ''rclone check'' affiche également la différence d'état entre les fichiers locaux et distants. | ||
===== Utilisation ===== | ===== Utilisation ===== | ||
Ligne 110: | Ligne 192: | ||
Chaque ''[source]'' ou ''[destination]'' peut être un [[:chemins|chemin]] //local// ou //distant//. | Chaque ''[source]'' ou ''[destination]'' peut être un [[:chemins|chemin]] //local// ou //distant//. | ||
- | Les chemins distants seront de la forme ''[service]:[chemin]'', ''[service]'' étant le nom du service choisi lors de la configuration (''monServeur'' dans l'exemple précédent). | + | Les chemins distants seront de la forme ''[service]:[chemin]'', ''[service]'' étant le nom du service choisi lors de la configuration.\\ |
+ | 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 214: | Ligne 297: | ||
</code> | </code> | ||
- | ===== Serveur ===== | + | ==== Serveur ==== |
La commande ''rclone serve'' permet d'utiliser R**CLONE** comme [[:serveur]], pour mettre à disposition le stockage de différentes manières.((**(//en//)** [[https://rclone.org/commands/rclone_serve/|documentation rclone serve]])) | La commande ''rclone serve'' permet d'utiliser R**CLONE** comme [[:serveur]], pour mettre à disposition le stockage de différentes manières.((**(//en//)** [[https://rclone.org/commands/rclone_serve/|documentation rclone serve]])) | ||
- | Il est ainsi possible de monter facilement un serveur web (HTTP), [[:WebDAV]], [[:DLNA]], [[:ssh#monter_un_repertoire_distant_navigation_via_sftp_secure_file_transfer_protocol|SFTP]], [[:FTP]], [[:docker#manipulation_de_volumes|volume docker]] et [[https://rclone.org/commands/rclone_serve/#see-also|quelques autres protocoles]]. Cela permet de convertir un stockage distant d'un certain type à un autre ! | + | Il est ainsi possible de monter facilement un serveur web (HTTP), [[:WebDAV]], [[:DLNA]], [[:ssh#monter_un_repertoire_distant_navigation_via_sftp_secure_file_transfer_protocol|SFTP]], [[:FTP]], [[:docker#manipulation_de_volumes|volume docker]] et [[https://rclone.org/commands/rclone_serve/#see-also|quelques autres protocoles]]. Cela permet de convertir un stockage distant d'un certain type (par ex. un service propriétaire plus ou moins cryptique) à un autre (un protocole ouvert largement répandu) ! |
===== Interface graphique ===== | ===== Interface graphique ===== | ||
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 232: | 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]]// |