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 26/09/2023, 17:15]
krodelabestiole [Montage] +exemple systemd
rclone [Le 29/04/2024, 17:13] (Version actuelle)
krodelabestiole [Test]
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 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.\\ ​ 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, 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.
Ligne 15: Ligne 15:
 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** 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'​optimisations particulières (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>​ 
 +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 configuration.   * ''​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 78: Ligne 87:
 </​file>​ </​file>​
  
-La commande ''​rclone obscure'' ​suvis de votre mot de passe permet de chiffrer les mots de passe afin de les utiliser dans ce fichier. Mettez un espace avant ''​ rclone obscure''​ afin d'éviter d'enregistrer votre mot de passe en clair dans [[:​bash#​bash_history|l'historique bash]] !+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 denregistrer 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 =====
Ligne 84: Ligne 103:
 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 [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 107: Ligne 129:
 === 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 : 
 +<​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. Vous pouvez consultez la [[https://​github.com/​rclone/​rclone/​wiki/​rclone-mount-helper-script|documentation en anglais]] à ce sujet.
  
-[[:Systemd]] est la méthode recommandée ​sur Ubuntu.+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?​]]//​))
  
-== Systemd ==+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 :
  
-Pour cet exemple nous allons monter ​le stockage distant ​''​monServeur'' ​dans le répertoire ''/​media/​monserveur''​.+== 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]].)) : [[:​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]].)) :
Ligne 132: Ligne 183:
 WantedBy=multi-user.target WantedBy=multi-user.target
 </​file>​ </​file>​
-Ce fichier sert à s'​assurer que le réseau est disponible avant monter l'​espace de stockage distant.+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''​ :+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 stockageavec l'​extension ''​.mount''​. Par ex. pour ''/​media/​monserveur''​ le fichier sera ''/​etc/​systemd/​system/​media-monserveur.mount''​ :
 <file - media-monserveur.mount>​ <file - media-monserveur.mount>​
 [Unit] [Unit]
Ligne 165: Ligne 216:
 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 :
  
   * [[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 177: 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.1695741330.txt.gz
  • Dernière modification: Le 26/09/2023, 17:15
  • par krodelabestiole