Rclone: rsync para almacenamiento en la nube
Sincroniza archivos y directorios con más de 70 proveedores de almacenamiento en la nube desde la línea de comandos
Vídeo tutorial en YouTube
Mira el vídeo completo sobre cómo instalar y usar Rclone: rsync para almacenamiento en la nube en el canal GENBYTE:
¿Qué es Rclone: rsync para almacenamiento en la nube?
Rclone es un programa de línea de comandos diseñado para gestionar la transferencia y sincronización de archivos entre almacenamiento local y una amplia variedad de proveedores cloud. Conocido como "rsync para cloud storage", soporta más de 70 backends incluyendo Google Drive, Amazon S3, Dropbox, OneDrive, Backblaze B2, Azure Blob, Wasabi y muchos otros compatibles con S3, WebDAV, SFTP y FTP. Escrito en Go y licenciado bajo MIT, ofrece verificación de integridad mediante hash MD5/SHA-1, preservación de timestamps, sincronización unidireccional y bidireccional, cifrado transparente, compresión, fragmentación de archivos grandes y montaje FUSE para acceder a remotos como sistemas de archivos locales.
Características principales
Amplia compatibilidad de proveedores
Soporta más de 70 backends de almacenamiento: Google Drive, Amazon S3, Dropbox, OneDrive, Backblaze B2, Azure Blob/Files, Wasabi, DigitalOcean Spaces, MinIO, y cualquier servicio compatible con S3, WebDAV, SFTP, FTP, Swift u HTTP.
Modos de sincronización flexibles
Incluye copy (copia solo archivos nuevos/cambiados), sync (unidireccional para hacer directorios idénticos), bisync (bidireccional para mantener dos directorios sincronizados) y check (verifica igualdad mediante hash).
Integridad y metadatos
Verifica MD5/SHA-1 en todo momento para garantizar integridad de datos. Preserva timestamps en archivos y soporta sincronización parcial a nivel de archivo completo.
Cifrado transparente (Crypt)
Backend virtual Crypt que cifra archivos y nombres de archivo en el lado del cliente antes de subirlos, compatible con cualquier proveedor remoto.
Compresión y fragmentación
Backend Compress para compresión transparente y Chunker para dividir archivos grandes en fragmentos, útiles para límites de tamaño en proveedores.
Montaje FUSE y servidor integrado
Permite montar remotos como sistema de archivos local (rclone mount) y servir archivos locales o remotos vía HTTP, WebDAV, FTP, SFTP o DLNA (rclone serve).
Proveedores virtuales avanzados
Incluye Alias (renombrar remotos), Archive (leer archivos comprimidos), Combine (unir remotos en árbol), Hasher (hash de archivos), Union (unir remotos para trabajo conjunto) y Cache (obsoleto).
Multi-hilo y rendimiento
Descargas multi-hilo a disco local para maximizar ancho de banda. Binario único sin dependencias externas, compilado estáticamente.
Requisitos del sistema
- Sistema operativo Linux, macOS, Windows, FreeBSD, NetBSD, OpenBSD, Plan 9 o Solaris
- Arquitectura compatible: amd64, arm64, arm, 386, ppc64le, s390x, mips, mipsle, mips64, mips64le, riscv64
- Para montaje FUSE: kernel con soporte FUSE y paquete fuse3 instalado
- Para compilar desde fuente: Go 1.21 o superior
- Para Docker: Docker Engine 20.10+ y Docker Compose v2+
Instalación con Docker Compose
Descarga directa (binario oficial)
Descarga el binario precompilado para tu plataforma desde la página oficial. No requiere instalación, solo ejecuta el archivo.
curl -O https://downloads.rclone.org/rclone-current-linux-amd64.zip
unzip rclone-current-linux-amd64.zip
cd rclone-*-linux-amd64
sudo cp rclone /usr/local/bin/
sudo chown root:root /usr/local/bin/rclone
sudo chmod 755 /usr/local/bin/rclone
# Verificar instalación
rclone version
Instalación con script oficial
Script de instalación automática que detecta la plataforma y coloca el binario en /usr/local/bin.
Ejecución con Docker (imagen oficial)
La imagen oficial rclone/rclone en Docker Hub permite ejecutar rclone en contenedor. Monta directorios de configuración y datos según necesidad.
docker run –rm \
-v $HOME/.config/rclone:/config/rclone \
-v $HOME/data:/data \
rclone/rclone listremotes
# Montar un remoto (requiere –cap-add SYS_ADMIN y –device /dev/fuse)
docker run -d \
–name rclone-mount \
–cap-add SYS_ADMIN \
–device /dev/fuse \
–security-opt apparmor:unconfined \
-v $HOME/.config/rclone:/config/rclone \
-v $HOME/mnt:/mnt:shared \
rclone/rclone mount remote:path /mnt –allow-other –vfs-cache-mode writes
Docker Compose para servicio persistente
Define un servicio rclone en docker-compose.yml para montaje continuo o tareas programadas. Ajusta UID/GID según tu usuario.
services:
rclone:
image: rclone/rclone:latest
container_name: rclone
user: "1000:1000"
cap_add:
– SYS_ADMIN
devices:
– /dev/fuse
security_opt:
– apparmor:unconfined
volumes:
– ~/.config/rclone:/config/rclone
– ~/data:/data
– ~/mnt:/mnt:shared
environment:
– XDG_CONFIG_HOME=/config
# Comando para montaje persistente (ajusta remote:path)
command: mount remote:path /mnt –allow-other –vfs-cache-mode writes –daemon
restart: unless-stopped
Acceder al proyecto
Configuración inicial interactiva
Ejecuta 'rclone config' para crear remotos mediante asistente interactivo. La configuración se guarda en ~/.config/rclone/rclone.conf (o XDG_CONFIG_HOME).
Comandos básicos de operación
Usa 'rclone copy source:path dest:path' para copiar, 'rclone sync source:path dest:path' para sincronizar unidireccional, 'rclone bisync path1 path2' para bidireccional, 'rclone check source:path dest:path' para verificar, 'rclone mount remote:path /mnt' para montar FUSE, 'rclone serve http /path' para servir vía HTTP.
Ayuda y documentación de comandos
Ejecuta 'rclone –help' para lista general, 'rclone command –help' para ayuda específica de un subcomando, o consulta la documentación online en https://rclone.org/docs/
Casos de uso
- Backup automatizado de servidores a almacenamiento cloud (S3, B2, Google Drive, etc.)
- Sincronización bidireccional entre dos cuentas cloud distintas (ej. Google Drive ↔ OneDrive)
- Migración de datos entre proveedores cloud sin pasar por disco local
- Montaje de almacenamiento cloud como disco local para aplicaciones legacy
- Distribución de archivos mediante servidor HTTP/WebDAV/FTP/SFTP/DLNA integrado
- Cifrado de datos sensibles antes de subirlos a proveedores públicos (backend Crypt)
- Compresión y fragmentación de archivos grandes para superar límites de proveedores
- Replicación de buckets S3 entre regiones o cuentas (AWS ↔ MinIO ↔ Wasabi ↔ R2)
Configuración avanzada
Cifrado de extremo a extremo (Crypt)
Crea un remote crypt que envuelve otro remote. Configura con 'rclone config' eligiendo tipo 'crypt'. Define contraseña para cifrado de datos y opcionalmente para nombres de archivo. Ejemplo de uso directo: 'rclone copy /data cryptremote:bucket/path'.
[cryptremote]
remote = s3remote:bucket/path
password = *** ENCRYPTED ***
password2 = *** ENCRYPTED ***
filename_encryption = standard
directory_name_encryption = true
Montaje FUSE con caché VFS optimizado
Mejora rendimiento de montaje usando –vfs-cache-mode writes o full, –vfs-cache-max-size, –vfs-read-chunk-size y –buffer-size. Requiere –allow-other para acceso multi-usuario y /etc/fuse.conf con user_allow_other.
–allow-other \
–vfs-cache-mode writes \
–vfs-cache-max-size 10G \
–vfs-read-chunk-size 128M \
–buffer-size 256M \
–dir-cache-time 96h \
–poll-interval 1m \
–daemon
Servidor HTTP/WebDAV/FTP/SFTP/DLNA
Sirve cualquier remote o directorio local. Soporta autenticación, TLS, plantillas de directorio y transcodificación DLNA.
rclone serve http remote:path –addr :8080 –read-only
# Servidor WebDAV con autenticación
rclone serve webdav remote:path –addr :8081 –user user –pass pass
# Servidor SFTP
rclone serve sftp remote:path –addr :2022 –user user –pass pass
Bisync para sincronización bidireccional robusta
Mantiene dos directorios sincronizados en ambas direcciones con detección de conflictos, historial y recuperación. Requiere ejecución inicial con –resync si no hay estado previo.
rclone bisync /local/path remote:path –resync –create-empty-src-dirs
# Ejecuciones posteriores (incremental)
rclone bisync /local/path remote:path –create-empty-src-dirs
# Programar en cron/systemd timer para automatización
Filtros y reglas de inclusión/exclusión
Usa –include, –exclude, –filter, –filter-from para controlar qué archivos se transfieren. Patrones tipo glob y expresiones regulares soportadas.
rclone copy /data remote:backup \
–include "*.{jpg,jpeg,png,gif,pdf,doc,docx}" \
–exclude "*.tmp" \
–progress
Gestión y mantenimiento
Actualización de rclone
Descarga la última versión desde https://rclone.org/downloads/ o ejecuta el script de instalación nuevamente. En Docker, actualiza la imagen: 'docker pull rclone/rclone:latest' y recrea el contenedor.
curl https://rclone.org/install.sh | sudo bash
# Actualización Docker
docker pull rclone/rclone:latest
docker compose up -d –force-recreate
Gestión de configuración y remotos
Edita ~/.config/rclone/rclone.conf directamente o usa 'rclone config' para añadir/eliminar/modificar remotos. 'rclone config show' muestra configuración actual (con contraseñas ofuscadas). 'rclone config file' muestra ruta del archivo.
rclone listremotes
# Ver configuración de un remote
rclone config show remote_name
# Probar conexión a remote
rclone lsd remote_name:
Limpieza de caché VFS y metadata
El caché VFS (–vfs-cache-mode) almacena datos en disco. Limpia con 'rclone rc vfs/forget' vía RC o elimina directorio de caché manualmente. La metadata de bisync se guarda en el directorio de trabajo.
rclone rc vfs/forget remote=remote:path
# Ver estadísticas de caché
rclone rc vfs/stats remote=remote:path
Monitoreo y logging
Usa –log-file, –log-level (DEBUG, INFO, NOTICE, ERROR), –stats y –stats-file para seguimiento. Remote Control (–rc) expone API HTTP para métricas y control en tiempo real.
rclone sync /src remote:dst \
–log-file /var/log/rclone.log \
–log-level INFO \
–stats 30s \
–stats-file-name-length 0
# Habilitar Remote Control en puerto 5572
rclone mount remote:path /mnt –rc –rc-addr :5572 –rc-no-auth
Stack técnico
- Go (Golang) 1.21+
- Docker / Docker Compose
- FUSE3 (libfuse3) para montaje de sistemas de archivos
- Alpine Linux (imagen Docker base)
- GitHub Actions (CI/CD)
- Make (sistema de build)
Referencias oficiales
- Repositorio oficial en GitHub: https://github.com/rclone/rclone
- Sitio web y documentación oficial: https://rclone.org
- Guía de instalación: https://rclone.org/install/
- Documentación completa de comandos: https://rclone.org/docs/
- Lista de proveedores de almacenamiento soportados: https://rclone.org/overview/
- Imagen oficial en Docker Hub: https://hub.docker.com/r/rclone/rclone
- Foro de la comunidad: https://forum.rclone.org/
- Changelog y notas de versión: https://rclone.org/changelog/
Apoya el canal GENBYTE
¿Te ha sido útil este contenido?
Suscríbete a YouTube
Newsletter GENBYTE
Ko-fi
Contacto: [email protected]
