Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
rclone [Le 21/12/2023, 19:17]
krodelabestiole [Rclone] + sync bidir
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]]).
  
-**Rclone** 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 43: Ligne 43:
   * etc.   * etc.
  
-**Rclone** permet aussi à l'aide de [[:FUSE]] de monter ces espaces de stockage en système de fichier.+R**CLONE** permet aussi à l'aide de [[:FUSE]] de monter ces espaces de stockage en système de fichier. 
 + 
 +<note warning>​ 
 +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>​
  
 ===== Installation ===== ===== Installation =====
  
-**Rclone** 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]]. 
 + 
 +==== Dernière version ====
  
-Rclone est aussi disponible en [[:Snap]] depuis ​[[https://snapcraft.io/rclone|Snapcraft]].+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 ​rclone 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 63: 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.+  * 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 84: 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 ====
 +
 +Ces commandes peuvent être utiles pour tester votre configuration :
 +
 +  * ''​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 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]]).
 +  * 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 89: Ligne 183:
 On peut afficher la liste des commandes disponibles en tapant simplement ''​rclone''​ dans un [[:​terminal]]. On peut afficher la liste des commandes disponibles en tapant simplement ''​rclone''​ dans un [[:​terminal]].
  
-Rclone ​permet de réaliser toutes sortes d'​opérations (''​rclone du'',​ ''​rclone ncdu'',​ ''​rclone dedupe'',​ etc.), dont le [[#​montage]] et la [[#Copie / synchronisation|synchronisation]].+R**CLONE** ​permet de réaliser toutes sortes d'​opérations (''​rclone du'',​ ''​rclone ncdu'',​ ''​rclone dedupe'',​ etc.), dont le [[#​montage]] et la [[#Copie / synchronisation|synchronisation]].
  
 ==== Copie / synchronisation ==== ==== Copie / synchronisation ====
  
-En ligne de commande, ​rclone ​s'​utilise un peu comme rsync avec la commande ''​rclone sync''​ :+En ligne de commande, ​R**CLONE** ​s'​utilise un peu comme [[:rsync]] avec la commande ''​rclone sync''​ :
 <​code>​rclone sync --update --progress [source] [destination]</​code>​ <​code>​rclone sync --update --progress [source] [destination]</​code>​
  
 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 114: Ligne 209:
 === Montage automatique === === Montage automatique ===
  
-Il est possible d'​utiliser ​rclone ​avec [[:​systemd]],​ [[:​autofs]],​ ou [[:​mount_fstab|fstab]].+Il est possible d'​utiliser ​R**CLONE** ​avec [[:​systemd]],​ [[:​autofs]],​ ou [[:​mount_fstab|fstab]].
  
 Pour cela il faut créer des [[:​lien_physique_et_symbolique|liens symboliques]] avec les commandes suivantes : Pour cela il faut créer des [[:​lien_physique_et_symbolique|liens symboliques]] avec les commandes suivantes :
Ligne 201: Ligne 296:
 sudo systemctl start media-monserveur.mount sudo systemctl start media-monserveur.mount
 </​code>​ </​code>​
 +
 +==== 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]]))
 +
 +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 ​rclone ​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'UbuntuVous pouvez donc [[:tutoriel:​comment_installer_un_paquet|installer le paquet]] **[[apt>​rclone-browser]].** +La solution est de mettre à jour R**CLONE** manuellement.\\ 
-  ​* Rclone 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 214: 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]]//​
  • rclone.1703182624.txt.gz
  • Dernière modification: Le 21/12/2023, 19:17
  • par krodelabestiole