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 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 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 ===== | ||
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 stockage, avec 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]]// |