3 points par GN⁺ 2024-01-28 | 1 commentaires | Partager sur WhatsApp
  • Rclone est un outil de gestion de fichiers cloud en ligne de commande, capable de gérer plus de 70 produits de stockage et protocoles de transfert standard sans dépendre d’une interface web
  • Il propose des opérations de type Unix familières comme rsync, cp, mv, mount, adaptées au cloud, avec prise en charge des pipelines shell, de --dry-run, des scripts et de l’automatisation via API
  • Il préserve les horodatages et les sommes de contrôle pendant les transferts, et peut reprendre à partir du dernier point de transfert valide même avec une bande passante limitée, une connexion instable ou des quotas
  • Il peut monter des systèmes de fichiers locaux, cloud ou virtuels comme des disques sous Windows, macOS, Linux et FreeBSD, et les exposer via SFTP, HTTP, WebDAV, FTP ou DLNA
  • Sauvegarde, restauration, migration entre clouds, chiffrement, compression, découpage, hachage et agrégation : tout peut être géré avec un seul outil, ce qui le rend utile lorsqu’on exploite plusieurs services de stockage à la fois

Outil en ligne de commande pour la gestion de fichiers cloud

  • Rclone est un programme en ligne de commande pour gérer les fichiers dans le cloud storage
  • Il est utilisé comme un outil riche en fonctionnalités pouvant remplacer l’interface web de stockage fournie par les fournisseurs cloud
  • Il prend en charge plus de 70 cibles, dont les object stores S3, des services de stockage de fichiers grand public et entreprise, ainsi que des protocoles de transfert standard
  • Les utilisateurs qualifient Rclone de « couteau suisse du cloud storage » et de « technologie indiscernable de la magie »

Commandes de type Unix et automatisation

  • Rclone propose des opérations cloud correspondant à des commandes Unix familières
    • rsync
    • cp
    • mv
    • mount
    • ls
    • ncdu
    • tree
    • rm
    • cat
  • La syntaxe prend en charge les pipelines shell, et --dry-run permet de vérifier les actions avant d’appliquer des modifications réelles
  • Il peut être utilisé non seulement en ligne de commande, mais aussi via des scripts et une API
  • Des développeurs tiers utilisent la ligne de commande ou l’API de Rclone pour créer des solutions de sauvegarde, de restauration, des GUI et des processus métier

Protection des données et fiabilité des transferts

  • Il préserve les horodatages pendant les transferts et vérifie toujours les sommes de contrôle
  • Même dans des environnements à bande passante limitée, à connexion intermittente ou soumis à des quotas, il peut reprendre à partir du dernier fichier transféré correctement
  • La commande check permet de vérifier l’intégrité des fichiers
  • Lorsque c’est possible, il utilise des transferts côté serveur pour réduire l’usage de la bande passante locale et effectuer des transferts entre fournisseurs sans passer par le disque local
  • Les fonctionnalités liées au transfert incluent notamment
    • vérification de l’intégrité des fichiers via les hachages MD5 et SHA1
    • préservation des horodatages des fichiers
    • reprise des tâches à tout moment
    • transferts réseau entre différents fournisseurs cloud
    • téléchargements multithread vers le disque local

Scénarios de sauvegarde, restauration et migration

  • Sauvegarde des fichiers vers le cloud storage, avec chiffrement si nécessaire
  • Restauration des fichiers depuis le cloud storage, avec déchiffrement si nécessaire
  • Possibilité de répliquer des données cloud vers un autre service cloud ou en local
  • Possibilité de migrer des données vers le cloud ou entre fournisseurs de cloud storage
  • Montage comme disques de plusieurs stockages cloud chiffrés, mis en cache ou hétérogènes
  • Analyse et agrégation des données du cloud storage avec lsf, ljson, size, ncdu
  • Union permet de présenter plusieurs systèmes de fichiers locaux ou cloud comme un seul

Opérations sur les fichiers et exposition de services

  • Copy copie vers le cloud storage les fichiers nouveaux ou modifiés
  • Sync rend des répertoires identiques en mode unidirectionnel
  • Bisync synchronise deux répertoires en bidirectionnel
  • Move déplace des fichiers vers le cloud storage en supprimant les fichiers locaux après vérification
  • Check vérifie les hachages ainsi que les fichiers manquants ou supplémentaires
  • Mount monte le cloud storage comme disque réseau
  • Serve expose des fichiers locaux ou distants via HTTP, WebDAV, FTP, SFTP, DLNA
  • La GUI web est une fonctionnalité expérimentale

Montage et backends virtuels

  • Monte comme disques des systèmes de fichiers locaux, cloud et virtuels sous Windows, macOS, Linux et FreeBSD
  • Le même système de fichiers peut être exposé via SFTP, HTTP, WebDAV, FTP, DLNA
  • Les backends virtuels encapsulent des systèmes de fichiers locaux ou cloud pour leur ajouter des fonctionnalités supplémentaires
    • Crypt : chiffrement des fichiers
    • Compress : compression des fichiers
    • Chunker : découpage des gros fichiers
    • Hasher : hachage des fichiers
    • Union : agrégation de plusieurs stockages distants
    • Alias : renommage d’un stockage distant existant
    • Archive : lecture de fichiers d’archive
    • Cache : cache de stockage distant, Deprecated
    • Combine : combinaison de plusieurs stockages distants dans une arborescence de répertoires

Fournisseurs pris en charge et installation

  • Les fournisseurs pris en charge incluent Amazon S3, Backblaze B2, Box, Dropbox, Google Cloud Storage, Google Drive, Microsoft Azure Blob Storage, Microsoft OneDrive, Proton Drive, SFTP, SMB/CIFS, WebDAV et les systèmes de fichiers locaux
  • D’autres fournisseurs reposant sur des protocoles standard comme WebDAV ou S3 fonctionnent aussi souvent immédiatement
  • Rclone est un logiciel open source mature inspiré de rsync et écrit en Go
  • Rclone est inclus dans les dépôts officiels d’Ubuntu, Debian, Fedora, Brew et Chocolatey
  • Il est recommandé de télécharger la dernière version depuis rclone.org
  • Liens associés

1 commentaires

 
GN⁺ 2024-01-28
Avis sur Hacker News
  • J’aime vraiment beaucoup rclone. Je me souviens que l’ancienne page de dons disait quelque chose comme « rclone est un projet fait par amour, je n’ai pas besoin d’argent, mais si vous contribuez à acheter des fleurs à ma femme, je vous en serais vraiment reconnaissant »
    Ça donnait juste l’impression d’une personne formidable, et je suis content qu’il puisse désormais travailler à plein temps sur rclone. J’espère que cela reste toujours aussi gratifiant
    J’ai retrouvé la page de l’époque sur archive.org, et c’était encore plus chaleureux que dans mon souvenir :
    “Rclone is a pure open source for love-not-money project. However I’ve had requests for a donation page and coding rclone does take me away from something else I love - my wonderful wife.”
    “So if you would like to send a donation, I will use it to buy flowers (and other pretty things) for her which will make her very happy.”
    https://web.archive.org/web/20180624105005/https://rclone.or...

    • J’ai déjà rencontré Nick en vrai, c’était vraiment quelqu’un de très bien
  • rclone peut aussi monter du stockage cloud comme un disque local, ce qui est particulièrement pratique avec Kubernetes
    Quand il y a beaucoup de fichiers dans un même dossier, les lectures/écritures ne sont pas ultra-rapides si on l’utilise comme un disque, mais c’est une façon rapide et simple d’exploiter du stockage cloud dans un projet
    Il permet aussi le chiffrement de bout en bout par emplacement : par exemple, tous les fichiers déposés sur un disque monté sont écrits chiffrés dans le dossier /foo de Dropbox. C’est appréciable puisque des fournisseurs comme Dropbox ou S3 ne prennent pas encore en charge nativement le chiffrement de bout en bout
    Globalement, rclone est un excellent outil à garder sous la main, et il couvre vraiment beaucoup de cas d’usage

    • On peut très facilement créer un serveur FTP temporaire exposant du stockage local ou cloud
      Par exemple, mon Pi4 expose Dropbox sur mon réseau local via un serveur FTP rclone, et un autre serveur FTP permet à mon imprimante réseau d’enregistrer ses scans. Sur la même machine, je fais aussi tourner avec rclone des sauvegardes automatiques du stockage cloud de ma famille et d’un ami proche. Sur mon réseau local, rclone est quasiment un sauveur
    • C’est vraiment très bien pour cet usage, mais il faut s’assurer que le réseau est stable
      J’utilise Google Drive monté sur mon PC de bureau et mon ordinateur portable ; sur le portable, le problème est que le système d’exploitation voit le disque comme local et que rclone ne finit pas en timeout lors des erreurs réseau. Si une application tente de lire ou d’écrire sur le disque alors que le Wi‑Fi n’est pas connecté, elle se bloque indéfiniment. Par exemple, sous XFCE, si une fenêtre Thunar est ouverte, une grande partie de l’interface peut se retrouver bloquée
    • Dire simplement « monter du stockage cloud sur un disque local » ne parle pas forcément tout de suite. Je me demandais s’il utilisait FUSE, 9p, un pilote ou un autre mécanisme pour transformer les appels au système de fichiers en appels API
      Après vérification, c’était FUSE
    • Je me demande si quelqu’un l’a utilisé avec succès comme remplaçant d’une application de synchronisation bidirectionnelle comme Insync pour Google Drive
      Insync n’est pas terrible, Google Drive non plus, mais pour un usage dont on dépend au quotidien, j’ai l’impression qu’il faut absolument une copie locale des fichiers et une synchronisation immédiate entre local et serveur. Surtout quand la connexion Internet est instable
    • Quand on parle de chiffrement « e2e », je me demande si cela désigne le chiffrement côté client. S3 prend en charge à la fois le chiffrement côté client et le chiffrement côté serveur
      Bien sûr, pour prendre en charge le chiffrement côté client, le service n’a généralement pas grand-chose de particulier à faire
      Pour le chiffrement côté client, il existe même un client S3 chiffré dédié : https://docs.aws.amazon.com/amazon-s3-encryption-client/late...
  • Mon usage préféré de rclone, c’est rclone ncdu : https://rclone.org/commands/rclone_ncdu/
    La plupart des fournisseurs d’espace cloud n’indiquent pas combien d’espace occupent réellement chaque dossier et ses sous-dossiers ; dans ce cas, rclone ncdu tombe à pic

    • J’aime ncdu, et son intégration avec rclone est très pratique
  • J’utilise rclone tous les jours. Dans certains cas, il a remplacé sshfs
    J’envoie le partage $Archive de mon serveur domestique vers rsync.net, et je rapatrie les photos de mon compte Google, de ceux de ma femme, de ma mère, de mon père et des enfants vers $Archive. Je rassemble aussi trois comptes cloud différents pour $WORK dans $Archive, puis je les envoie vers rsync.net
    C’est vraiment un outil de tout premier ordre

    • Après avoir utilisé sshfs pendant des années, j’ai découvert que rclone pouvait monter des stockages distants dans le système de fichiers, et je m’en sers avec satisfaction depuis
      https://rclone.org/commands/rclone_mount/
      À l’heure actuelle, SSHFS n’a plus de contributeur actif et régulier, et il existe plusieurs problèmes connus
      https://github.com/libfuse/sshfs#development-status
    • Si vous récupérez depuis Google Photos, j’ai l’impression que la seule façon d’obtenir la qualité d’origine est d’utiliser Takeout
    • rsync.net propose aussi une offre un peu moins chère si vous n’avez pas besoin de toutes les fonctionnalités et du support, mais seulement d’archives Borg : https://www.rsync.net/products/borg.html
  • Pour les sauvegardes, Restic vaut aussi le coup d’œil. rclone et Restic fonctionnent très bien ensemble
    https://www.bobek.cz/blog/2020/restic-rclone/

    • Le principal inconvénient de Restic pur est qu’on finit généralement par écrire soi-même des scripts shell pour gérer la configuration. Restic lui-même n’a pas cette fonctionnalité
      Heureusement, il existe https://github.com/creativeprojects/resticprofile pour résoudre ce problème
    • Comme précaution supplémentaire, il peut aussi être intéressant de rendre les sauvegardes append-only : https://ruderich.org/simon/notes/append-only-backups-with-re...
    • L’équipe de Restic refuse les sauvegardes non chiffrées au motif de « la sécurité »
      Je n’aime pas cette approche où quelqu’un suppose que son jugement est le meilleur au monde en toute circonstance, et que les autres ont tort
      Je sais ce que je fais, et j’ai de très bonnes raisons de ne pas vouloir chiffrer mes sauvegardes
      Restic aurait pu sauvegarder avec chiffrement par défaut tout en autorisant une option du type --do-not-encrypt
      L’arrogance des développeurs est stupéfiante, et c’est pour cela que je n’utiliserai pas Restic. C’est d’autant plus dommage que c’est une très bonne solution de sauvegarde
      Mieux vaut essayer Borg
    • J’utilise les deux
      Plusieurs machines sont sauvegardées toutes les heures avec Restic vers un serveur local, puis rclone synchronise ces sauvegardes chaque jour vers S3
      Cela réduit le nombre d’opérations de lecture/écriture, rend la restauration plus rapide et permet de limiter à une seule machine les droits d’accès à S3
    • duplicacy mérite aussi d’être regardé : https://twitter.com/ArtemR/status/1159392251992145920
      https://github.com/gilbertchen/duplicacy
  • Rclone prend en charge de nombreux backends de stockage et fournit aussi un backend crypt capable de chiffrer n’importe quel backend de stockage
    https://rclone.org/overview/
    https://rclone.org/crypt/

  • J’aime le fait que le site mette clairement en avant la vérification des checksums systématique
    J’avais été surpris, par le passé, de voir combien d’outils sautent cette étape. Bien sûr, cela ralentit les choses, mais lorsqu’on synchronise entre des stockages cloud, il y a de bonnes chances qu’on veuille vraiment vérifier les checksums

    • Le témoignage en haut de page, « indiscernable de la magie », m’a paru un peu arrogant, mais je suis en train de vérifier si des affirmations aussi extraordinaires s’accompagnent de preuves extraordinaires
  • Quelqu’un a regardé le client open source, fait du reverse engineering de l’API Proton Drive et créé un plugin Rclone
    C’est actuellement la seule manière d’utiliser Proton Drive sous Linux

    • Je ne savais pas que rclone prenait Proton Drive en charge. Comme je me suis abonné au forfait Visionary quand il a brièvement été rouvert, je vais pouvoir utiliser aussi ce stockage
  • Rclone est un outil magique que j’ai utilisé pour de nombreux usages différents
    La dernière fois que j’ai vérifié, il n’utilisait pas l’AWS SDK ou était limité par la version de Go, si bien qu’il ne pouvait pas utiliser tous les paramètres de .aws/config
    Cela dit, comme c’est un outil polyvalent, on peut comprendre dans une certaine mesure qu’il ne prenne pas en charge toutes les fonctionnalités de tous les backends
    La documentation contient beaucoup d’avertissements sur des fonctionnalités non maintenues, comme le caching, et sur des fonctionnalités expérimentales. Les avertissements eux-mêmes sont honnêtes, mais ils n’indiquent pas clairement les contraintes précises

  • J’aime vraiment Rclone. C’est un outil précieux quand des personnes peu à l’aise avec la technique ont déposé beaucoup de données dans des clouds grand public/professionnels, et qu’il faut les rapatrier d’une manière ou d’une autre sur un serveur pour un traitement supplémentaire
    Quand il y a beaucoup de données et que la connexion Internet à la maison n’est pas bonne, il est aussi excellent pour les transferts directs entre clouds. On installe rclone sur un serveur avec un bon réseau et on le lance sous tmux ; la tâche continue alors de tourner même si mon ordinateur n’est pas allumé

    • tmux n’est pas indispensable
      nohup /usr/bin/rclone ... &>/dev/null &
      En le lançant ainsi, il continue de s’exécuter même après déconnexion