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 25/09/2023, 16:57]
krodelabestiole +montage
rclone [Le 29/04/2024, 17:13] (Version actuelle)
krodelabestiole [Test]
Ligne 5: Ligne 5:
 ====== Rclone ====== ====== Rclone ======
  
-**Rclone** permet de synchroniser des répertoires et des fichiers sur de nombreuses plateformes de stockage différentes. Il rend la source et la destination identiques en ne modifiant que la destination. 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.+**[[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]]//​. 
 + 
 +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]]. 
 + 
 +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]].\\ ​ [[: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è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]]).
  
-**Rclone** se présente comme "​rsync,​ pour le stockage cloud"​(([[https://​github.com/​rclone/​rclone|GitHub]] : //rsync for cloud storage//​)). Il est extrêmement performant dans toutes ​les 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'​optimisations particulières (en WebDAV on peut s'​attendre à multiplier les vitesses de transferts de rsync ou de certains clients par 50 !).
  
-Rclone ​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 :
  
   * les systèmes de fichiers locaux   * les systèmes de fichiers locaux
Ligne 38: 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>​ 
 +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 ! 
 +</​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]].**
  
-Rclone ​est aussi disponible en [[:Snap]] depuis [[https://​snapcraft.io/​rclone|Snapcraft]].+R**CLONE** ​est aussi disponible en [[:Snap]] depuis [[https://​snapcraft.io/​rclone|Snapcraft]].
  
 ===== Configuration ===== ===== Configuration =====
  
-On peut configurer ​rclone ​avec un outil interactif en ligne de commande.+On peut configurer ​R**CLONE** ​avec un outil interactif en ligne de commande.
  
 Entrez la commande suivante  dans un [[:​terminal]] : Entrez la commande suivante  dans un [[:​terminal]] :
-<​code>​rclone config</​code>​+ 
 +  ​rclone config
  
 Une suite de question vous sera posée en anglais. Une suite de question vous sera posée en anglais.
  
   * 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 / 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))
   * 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 confiration.+  * ''​y''​ ou //Entrée// pour valider la configuration.
   * Puis ''​q''​ pour quitter.   * Puis ''​q''​ pour quitter.
  
-Le fichier de configuration ''​~/​.config/​rclone/​rclone.conf''​ sera ainsi créé. Vous pouvez si besoin l'​éditer : +Le fichier de configuration ''​~/​.config/​rclone/​rclone.conf''​ sera ainsi créé. Vous pouvez si besoin l'[[:​tutoriel:​comment_modifier_un_fichier|éditer]] : 
-<​file ​rclone.conf>​[monServeur]+ 
 +<​file ​ini rclone.conf>​ 
 +[monServeur]
 type = webdav type = webdav
 url = https://​example.com url = https://​example.com
Ligne 72: Ligne 86:
 pass = motDePasseChiffré pass = motDePasseChiffré
 </​file>​ </​file>​
 +
 +La commande ''​rclone obscure''​ suivie de votre mot de passe permet de chiffrer les mots de passe afin de les utiliser dans ce fichier.
 +
 +<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>​
 +
 +==== 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]]).
  
 ===== Utilisation ===== ===== Utilisation =====
  
 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]].
 +
 +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 [local] [service]:​[distant]</​code>​+<​code>​rclone sync --update --progress [source] [destination]</​code>​ 
 + 
 +Chaque ''​[source]''​ ou ''​[destination]''​ peut être un [[:​chemins|chemin]] //local// ou //​distant//​.
  
-Remplacez ​''​[local]'' ​par le chemin local, ''​[service]'' ​par le nom du service choisi lors de la configuration ​(''​monServeur'' ​dans l'exemple précédent),​ puis ''​[distant]'' par le chemin distant.+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 ​ [local] [service]:​[distant]</​code></​note>​+<​code>​rclone sync --update --progress --dry-run [source] [destination]</​code></​note>​
  
 Voir aussi **//​(en)//​** [[https://​rclone.org/​docs/​|le guide d'​utilisation]],​ avec des instructions détaillées pour chaque fournisseur. Voir aussi **//​(en)//​** [[https://​rclone.org/​docs/​|le guide d'​utilisation]],​ avec des instructions détaillées pour chaque fournisseur.
Ligne 95: Ligne 126:
  
 On peut démonter le volume avec la commande ''​umount''​ de GNU. On peut démonter le volume avec la commande ''​umount''​ de GNU.
 +
 +=== Montage automatique ===
 +
 +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 :
 +<​code>​
 +sudo ln -s /​usr/​bin/​rclone /​sbin/​mount.rclone
 +sudo ln -s /​usr/​bin/​rclone /​usr/​bin/​rclonefs
 +</​code>​
 +(Ils ne sont malheureusement pas présents dans le paquet des dépôts officiels.)
 +
 +Vous pouvez consultez la [[https://​github.com/​rclone/​rclone/​wiki/​rclone-mount-helper-script|documentation en anglais]] à ce sujet.
 +
 +Pour monter automatiquement un volume, [[:​mount_fstab|fstab]] est la méthode généralement recommandée pour les humains, [[:​systemd]] pour les scripts et les outils.(([[wpfr>​Stack_Exchange_Network|Unix & Linux on StackExchange]] : //​[[https://​unix.stackexchange.com/​a/​427286/​324673|Is there any reason to move away from fstab on a systemd system?​]]//​))
 +
 +Voici 2 méthodes qui permettent d'​arriver au même résultat : nous allons monter le stockage distant ''​monServeur''​ dans le répertoire ''/​media/​monserveur''​. Ne suivez que l'une des 2 méthodes :
 +
 +== fstab ==
 +
 +[[:​tutoriel:​comment_modifier_un_fichier|Éditez le fichier]] ''/​etc/​fstab''​ avec les [[:​sudo|droits d'​administration]] afin de lui ajouter la ligne suivante :
 +
 +<file - /​etc/​fstab>​
 +monServeur:​ /​media/​monserveur rclone rw,​user,​umask=000,​noauto,​nofail,​_netdev,​x-systemd.automount,​args2env,​vfs_cache_mode=writes,​config=/​etc/​rclone.conf,​cache_dir=/​var/​cache/​rclone,​allow_other,​uid=1000,​gid=1000 0 0
 +</​file>​
 +
 +Modifiez éventuellement ''​uid=1000,​gid=1000''​ pour les remplacer par les identifiants de l'​utilisateurs à qui doit appartenir les fichiers (tapez simplement la commande ''​id''​ pour les connaître).
 +
 +Attention aussi à l'​emplacement du fichier ''​rlcone.conf''​ : ici ''/​etc/​rclone.conf''​ (on peut éventuellement déplacer ce fichier où on en a envie).
 +
 +Rechargez ensuite systemd :
 +<​code>​
 +sudo systemctl daemon-reload
 +</​code>​
 +
 +Vous pouvez dès lors monter le volume :
 +<​code>​
 +sudo mount /​media/​monserveur
 +</​code>​
 +
 +== Systemd ==
 +
 +[[:​tutoriel:​comment_modifier_un_fichier|Créez un fichier]] ''/​etc/​systemd/​system/​network-online.service''​ avec les [[:​sudo|droits d'​administration]],​ contenant((Cette documentation se base sur [[https://​blog.agchapman.com/​auto-mounting-network-file-systems-with-systemd/​|cet article]] et sur la [[https://​github.com/​rclone/​rclone/​wiki/​rclone-mount-helper-script|documentation officielle]].)) :
 +<file - network-online.service>​
 +[Unit]
 +Description=Wait until NM actually online
 +Requires=NetworkManager-wait-online.service
 +After=NetworkManager-wait-online.service
 +
 +[Service]
 +Type=oneshot
 +ExecStart=/​usr/​bin/​nm-online -q --timeout=120
 +RemainAfterExit=yes
 +
 +[Install]
 +WantedBy=multi-user.target
 +</​file>​
 +Ce fichier sert à s'​assurer que le réseau est disponible avant de monter l'​espace de stockage distant.
 +
 +Toujours avec les [[:​sudo|droits d'​administration]],​ créez ensuite un autre fichier dans le répertoire ''/​etc/​systemd/​system/''​ qui aura le nom du chemin dans lequel vous voulez monter le stockage, avec l'​extension ''​.mount''​. Par ex. pour ''/​media/​monserveur''​ le fichier sera ''/​etc/​systemd/​system/​media-monserveur.mount''​ :
 +<file - media-monserveur.mount>​
 +[Unit]
 +Description=Monte monServeur
 +Requires=network-online.service
 +After=network-online.service
 +
 +[Mount]
 +Type=rclone
 +What=monServeur:​
 +Where=/​media/​monserveur
 +Options=rw,​allow_other,​args2env,​vfs-cache-mode=writes,​config=/​etc/​rclone.conf,​cache-dir=/​var/​rclone
 +TimeoutSec=10
 +
 +[Install]
 +WantedBy=multi-user.target
 +</​file>​
 +En remplaçant partout ''​monserveur''​ et ''​monServeur''​ par ce que vous aurez choisi.
 +
 +Activez ensuite ces modifications avec ces commandes :
 +<​code>​
 +sudo systemctl daemon-reload
 +sudo systemctl enable network-online
 +sudo systemctl enable media-monserveur.mount
 +</​code>​
 +puis redémarrez.
 +
 +Vous pouvez aussi tester le montage avec :
 +<​code>​
 +sudo systemctl start media-monserveur.mount
 +</​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 :
  
   * [[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]].**   * [[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]].**
-  * 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>​+  * 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>​
  
 ===== Voir aussi ===== ===== Voir aussi =====
Ligne 107: Ligne 234:
   * **//​(en)//​** [[https://​rclone.org|site officiel]]   * **//​(en)//​** [[https://​rclone.org|site officiel]]
   * [[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]]
  
 ---- ----
 //​Contributeur : [[:​utilisateurs:​krodelabestiole]]//​ //​Contributeur : [[:​utilisateurs:​krodelabestiole]]//​
  • rclone.1695653837.txt.gz
  • Dernière modification: Le 25/09/2023, 16:57
  • par krodelabestiole