3 puntos por GN⁺ 2024-01-28 | 1 comentarios | Compartir por WhatsApp
  • Rclone es una herramienta para gestionar archivos en la nube desde la línea de comandos, capaz de manejar más de 70 productos de almacenamiento y protocolos de transferencia estándar sin depender de interfaces web
  • Ofrece operaciones familiares de estilo Unix como rsync, cp, mv y mount adaptadas a la nube, y también admite pipelines de shell, --dry-run, scripts y automatización vía API
  • Durante las transferencias conserva marcas de tiempo y checksums, y puede reanudarse desde el último punto transferido correctamente incluso con límites de ancho de banda, conexiones inestables o entornos con cuotas
  • Permite montar como discos sistemas de archivos locales, en la nube y virtuales en Windows, macOS, Linux y FreeBSD, y servirlos mediante SFTP, HTTP, WebDAV, FTP y DLNA
  • Es útil al operar varios servicios de almacenamiento, ya que en una sola herramienta cubre backup, restauración, migración entre nubes, cifrado, compresión, fragmentación, hashing y combinación

Herramienta de línea de comandos para gestionar archivos en la nube

  • Rclone es un programa de línea de comandos para gestionar archivos en almacenamiento en la nube
  • Se usa como una herramienta con muchas funciones que puede reemplazar las interfaces web de almacenamiento que ofrecen los proveedores de nube
  • Soporta más de 70 opciones, incluidos almacenes de objetos S3, servicios de almacenamiento de archivos empresariales y de consumo, y protocolos de transferencia estándar
  • Los usuarios llaman a Rclone “la navaja suiza del almacenamiento en la nube” y “tecnología indistinguible de la magia”

Comandos estilo Unix y automatización

  • Rclone ofrece operaciones en la nube equivalentes a comandos Unix conocidos
    • rsync
    • cp
    • mv
    • mount
    • ls
    • ncdu
    • tree
    • rm
    • cat
  • Su sintaxis admite pipelines de shell, y con --dry-run se pueden revisar las operaciones antes de hacer cambios reales
  • Además de ejecutarse desde la línea de comandos, también puede usarse mediante scripts y una API
  • Desarrolladores de terceros usan la línea de comandos o la API de Rclone para crear soluciones de backup, restauración, GUI y procesos de negocio

Protección de datos y estabilidad de transferencia

  • Conserva las marcas de tiempo durante las transferencias y siempre verifica los checksums
  • Incluso en entornos con ancho de banda limitado, conexiones intermitentes o cuotas, puede reanudarse desde el último archivo transferido correctamente
  • El comando check permite verificar la integridad de los archivos
  • Cuando es posible, usa transferencias del lado del servidor para reducir el uso de ancho de banda local y transferir entre proveedores sin pasar por el disco local
  • Las funciones relacionadas con transferencias incluyen:
    • Verificación de integridad de archivos mediante hashes MD5 y SHA1
    • Conservación de marcas de tiempo de archivos
    • Trabajos que pueden reanudarse en cualquier momento
    • Transferencias por red entre distintos proveedores de nube
    • Descargas multihilo al disco local

Escenarios de backup, restauración y migración

  • Hace backup de archivos en almacenamiento en la nube y los cifra si es necesario
  • Restaura archivos desde almacenamiento en la nube y los descifra si es necesario
  • Puede replicar datos de la nube hacia otro servicio en la nube o hacia almacenamiento local
  • Permite migrar datos a la nube o moverlos entre proveedores de almacenamiento en la nube
  • Monta varios almacenamientos en la nube cifrados, con caché o heterogéneos como si fueran discos
  • Analiza y agrega datos del almacenamiento en la nube con lsf, ljson, size y ncdu
  • Con Union puede mostrar varios sistemas de archivos locales o en la nube como si fueran uno solo

Operaciones de archivos y servicios

  • Copy copia archivos nuevos o modificados al almacenamiento en la nube
  • Sync iguala directorios en una sola dirección
  • Bisync sincroniza dos directorios en ambas direcciones
  • Move mueve archivos al almacenamiento en la nube y elimina los archivos locales después de verificarlos
  • Check revisa hashes y archivos faltantes o adicionales
  • Mount monta almacenamiento en la nube como disco de red
  • Serve sirve archivos locales o remotos mediante HTTP, WebDAV, FTP, SFTP y DLNA
  • La GUI basada en Web es una función experimental

Montaje y backends virtuales

  • Monta sistemas de archivos locales, en la nube y virtuales como discos en Windows, macOS, Linux y FreeBSD
  • El mismo sistema de archivos puede servirse mediante SFTP, HTTP, WebDAV, FTP y DLNA
  • Los backends virtuales envuelven sistemas de archivos locales o en la nube para aplicar funciones adicionales
    • Crypt: cifrado de archivos
    • Compress: compresión de archivos
    • Chunker: división de archivos grandes
    • Hasher: hashing de archivos
    • Union: combinación de varios repositorios remotos
    • Alias: cambio de nombre de repositorios remotos existentes
    • Archive: lectura de archivos de archivo
    • Cache: caché de repositorios remotos, obsoleto
    • Combine: combinación de varios repositorios remotos en un árbol de directorios

Proveedores soportados e instalación

  • Entre los proveedores soportados se incluyen Amazon S3, Backblaze B2, Box, Dropbox, Google Cloud Storage, Google Drive, Microsoft Azure Blob Storage, Microsoft OneDrive, Proton Drive, SFTP, SMB/CIFS, WebDAV y sistemas de archivos locales
  • Otros proveedores basados en protocolos estándar como WebDAV o S3 suelen funcionar de inmediato
  • Rclone es software open source maduro inspirado en rsync y escrito en Go
  • Rclone está incluido en los repositorios oficiales de Ubuntu, Debian, Fedora, Brew y Chocolatey
  • Se recomienda descargar la versión más reciente desde rclone.org
  • Enlaces relacionados

1 comentarios

 
GN⁺ 2024-01-28
Opiniones en Hacker News
  • Me encanta rclone. Recuerdo que en una antigua página de donaciones decía algo como: “rclone es un proyecto hecho por amor, así que no necesita dinero, pero agradecería mucho si ayudan a comprarle flores a mi esposa”
    Simplemente me pareció una gran persona, y me alegra que ahora pueda dedicarse a rclone a tiempo completo. Ojalá siga siendo un trabajo gratificante
    Busqué la página de ese entonces en archive.org y era incluso más conmovedora de lo que recordaba:
    “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...

    • He conocido a Nick en persona y de verdad era una gran persona
  • rclone también puede montar almacenamiento en la nube como si fuera un disco local, así que resulta especialmente útil en Kubernetes
    Si lo usas como una unidad cuando hay muchos archivos en la misma carpeta, la velocidad de lectura/escritura no es increíble, pero es una forma rápida y sencilla de aprovechar almacenamiento en la nube en un proyecto
    También permite cifrado de extremo a extremo por ubicación; por ejemplo, todos los archivos que pongas en la unidad montada se escriben cifrados en la carpeta /foo de Dropbox. Eso está muy bien considerando que proveedores como Dropbox o S3 todavía no ofrecen cifrado de extremo a extremo nativo
    En general, rclone es una de esas herramientas que conviene tener a mano y resuelve muchísimos casos de uso

    • Se puede crear muy fácilmente un servidor FTP temporal que exponga almacenamiento local o en la nube
      Por ejemplo, mi Pi4 expone Dropbox en mi red interna con un servidor FTP de rclone, y otro servidor FTP separado permite que una impresora de red guarde ahí los archivos escaneados. En el mismo equipo también ejecuto con rclone respaldos automáticos del almacenamiento en la nube de familiares y amigos cercanos. En mi red interna, rclone es casi un salvavidas
    • Es muy bueno para este uso, pero hay que asegurarse de que la red sea estable
      Tengo Google Drive montado en mi desktop y en mi laptop, pero en la laptop el sistema operativo ve la unidad como local y el problema es que rclone no expira por timeout cuando hay errores de red. Si una aplicación intenta leer o escribir en la unidad sin que haya conexión Wi‑Fi, se queda colgada para siempre. Por ejemplo, si en XFCE dejas una ventana de Thunar abierta, gran parte de la UI puede quedarse bloqueada
    • Solo con decir “montar almacenamiento en la nube en un disco local” no me quedaba claro de inmediato. Tenía curiosidad por saber si usaba FUSE, 9p, drivers u otro mecanismo para convertir llamadas al sistema de archivos en llamadas a la API
      Revisé y sí, era FUSE
    • Me pregunto si alguien lo ha usado con éxito como reemplazo de una app de sincronización bidireccional como Insync para Google Drive
      Ni Insync ni Google Drive me entusiasman, pero si dependes de eso todos los días, siento que necesitas copias locales de los archivos y sincronización inmediata entre local y servidor, sobre todo cuando la conexión a internet es inestable
    • Cuando dicen cifrado “e2e”, me pregunto si se refieren a cifrado del lado del cliente. S3 soporta tanto cifrado del lado del cliente como del lado del servidor
      Claro, para soportar cifrado del lado del cliente realmente el servicio no necesita hacer nada demasiado especial
      Incluso hay un cliente S3 cifrado aparte para cifrado del lado del cliente: https://docs.aws.amazon.com/amazon-s3-encryption-client/late...
  • Mi forma favorita de usar rclone es rclone ncdu: https://rclone.org/commands/rclone_ncdu/
    La mayoría de los proveedores de almacenamiento en la nube no muestran cuánto espacio ocupan realmente cada carpeta y sus subcarpetas, y ahí es donde rclone ncdu encaja perfecto

    • Me gusta ncdu y su integración con rclone es muy práctica
  • Uso rclone todos los días. En algunos casos ha reemplazado a sshfs
    Empujo el recurso compartido $Archive de mi servidor casero a rsync.net, y traigo fotos a $Archive desde mi cuenta de Google, la de mi esposa, mi madre, mi padre y mis hijos. También reúno en $Archive tres cuentas de nube distintas para $WORK y luego lo envío a rsync.net
    De verdad es una herramienta de primer nivel

    • Usé sshfs durante años, luego me enteré de que rclone podía montar almacenamiento remoto en el sistema de archivos y desde entonces me ha funcionado muy bien
      https://rclone.org/commands/rclone_mount/
      Actualmente no hay nadie contribuyendo a SSHFS de forma activa y regular, y además tiene varios problemas conocidos
      https://github.com/libfuse/sshfs#development-status
    • Si lo que importas es desde Google Photos, creo que la única forma de obtenerlo con calidad original es usando Takeout
    • rsync.net también ofrece un plan un poco más barato si no necesitas todas las funciones y el soporte, y solo quieres archivos de Borg: https://www.rsync.net/products/borg.html
  • Para respaldos, también vale la pena revisar Restic. rclone y Restic funcionan muy bien juntos
    https://www.bobek.cz/blog/2020/restic-rclone/

    • La principal desventaja de Restic puro es que normalmente terminas escribiendo tú mismo scripts de shell para gestionar la configuración. Restic en sí no tiene esa función
      Por suerte, existe https://github.com/creativeprojects/resticprofile para resolver ese problema
    • Como medida adicional de prevención, también vale la pena considerar hacer que el respaldo sea solo anexable: https://ruderich.org/simon/notes/append-only-backups-with-re...
    • El equipo de Restic rechaza los respaldos sin cifrar “por seguridad”
      No me gusta ese enfoque de asumir que, en cualquier situación, su propio criterio es el mejor del mundo y que los demás están equivocados
      Yo sé lo que hago, y tengo razones perfectamente válidas para no querer cifrar mis respaldos
      Restic podría hacer respaldos por defecto y aun así permitir un switch como --do-not-encrypt
      La arrogancia de los desarrolladores es sorprendente, y por eso no voy a usar Restic. Es una lástima, porque por lo demás es una muy buena solución de respaldo
      Mejor probar Borg
    • Uso ambos
      Hago respaldos por hora de varias máquinas a un servidor local con Restic, y luego sincronizo esos respaldos a S3 cada día con rclone
      Así reduzco la cantidad de operaciones de lectura/escritura, las restauraciones son más rápidas y puedo limitar a una sola máquina el acceso a credenciales de S3
    • También vale la pena revisar duplicacy: https://twitter.com/ArtemR/status/1159392251992145920
      https://github.com/gilbertchen/duplicacy
  • Rclone soporta muchos backends de almacenamiento, y también ofrece el backend crypt, que permite cifrar cualquier backend de almacenamiento
    https://rclone.org/overview/
    https://rclone.org/crypt/

  • Me gusta que en la página principal presuman con seguridad que siempre hacen verificación de checksums
    Hace tiempo me sorprendió ver cuántas herramientas se saltan ese paso. Claro, eso lo hace más lento, pero si estás sincronizando entre almacenamientos en la nube, probablemente sí quieras verificar realmente los checksums

    • La recomendación de arriba, eso de “indistinguible de la magia”, sí me pareció un poco arrogante, pero ahora estoy viendo si hay evidencia extraordinaria para una afirmación tan extraordinaria
  • Alguien revisó el cliente de código abierto e hizo ingeniería inversa de la API de Proton Drive para crear un plugin de Rclone
    Por ahora, es la única forma de usar Proton Drive en Linux

    • No sabía que rclone tenía soporte para Proton Drive. Como me suscribí cuando el plan Visionary volvió a estar disponible por un rato, ahora también podré usar ese almacenamiento
  • Rclone es una herramienta casi mágica y la he usado para muchas cosas distintas
    La última vez que revisé, no usaba el AWS SDK o estaba limitado por la versión de Go, así que no podía aprovechar toda la configuración de .aws/config
    Aun así, como es una herramienta multipropósito, se entiende hasta cierto punto que no soporte todas las funciones de cada backend
    En la documentación hay muchas advertencias sobre funciones sin mantenimiento, como el caché, y funciones experimentales. Las advertencias en sí son justas, pero no dejan claras las limitaciones concretas

  • Definitivamente me gusta Rclone. Es una herramienta valiosa cuando personas no tan técnicas suben grandes cantidades de datos a nubes de consumo o empresariales, y luego hay que llevar esos datos a un servidor para procesarlos de algún modo
    También es excelente para transferencias directas entre nubes cuando hay mucho volumen de datos y el internet de casa no ayuda. Si instalas rclone en un servidor con buena red y lo ejecutas dentro de tmux, el trabajo sigue corriendo aunque tu computadora esté apagada

    • tmux no es estrictamente necesario
      nohup /usr/bin/rclone ... &>/dev/null &
      Si lo ejecutas así, seguirá corriendo incluso después de cerrar sesión