Skip to main content

rClone: Sincronización y gestión de almacenamiento en la nube


Introducción

rClone es una herramienta extremadamente versátil que te permite sincronizar, copiar y gestionar datos entre tu servidor y servicios de almacenamiento en la nube. Es ideal para realizar copias de seguridad seguras y acceder a tus archivos desde diferentes ubicaciones.


Características principales

  • Compatible con una amplia gama de servicios en la nube como Google Drive, OneDrive, Amazon S3, Dropbox y más.
  • Soporta sincronización, transferencia y montajes locales de datos remotos.
  • Configuración flexible y automatizable mediante systemd o scripts personalizados.

Instalación

Puedes instalar Rclone utilizando alguno de los siguientes métodos:

Instalación desde el repositorio del sistema operativo (puede no ser la versión más reciente)

sudo apt install rclone

Instalación de la versión más reciente usando el script oficial

curl https://rclone.org/install.sh | sudo bash

Configuración inicial

  1. Ejecuta el asistente de configuración interactiva para añadir un "remote" (servicio de almacenamiento):

    rclone config
    
  2. Sigue las instrucciones para configurar un servicio en la nube, como Google Drive, OneDrive, Amazon S3, Dropbox, etc.

  3. Una vez configurado, puedes listar los "remotes" disponibles con:

    rclone listremotes
    

Ejemplo de configuración con Google Drive

  • Tipo de almacenamiento: Google Drive.
  • Autenticación: Rclone guiará el proceso para generar y validar las credenciales necesarias.

Comandos útiles

Listar archivos y carpetas en un remote

rclone ls remote:/ruta/remota

Sincronizar un directorio local con un remote

rclone sync /ruta/local remote:/ruta/remota --progress

Copiar archivos sin eliminar diferencias

rclone copy /ruta/local remote:/ruta/remota --progress

Montar un remote como un sistema de archivos local (requiere fusermount)

rclone mount remote:/ruta/remota /ruta/de/montaje

Integración con systemd

Puedes usar systemd para montar servicios de almacenamiento en la nube de manera automática al iniciar el sistema. Esto es útil si necesitas que los directorios de tu nube estén siempre disponibles como si fueran unidades locales.

Ejemplo 1: Montar Google Drive

Archivo: /etc/systemd/system/rclone-mount-drive.service

[Unit]
Description=Rclone GDrive (writes)
After=network-online.target
Wants=network-online.target
RequiresMountsFor=/mnt/Drive

[Service]
Type=notify
User=tuusuario
Group=tugrupo
ExecStartPre=/usr/bin/mkdir -p /mnt/Drive

ExecStart=/usr/bin/rclone mount Drive: /mnt/Drive \
  --vfs-cache-mode=writes \
  --cache-dir=/var/cache/rclone-drive \
  --dir-cache-time=12h \
  --poll-interval=1m \
  --vfs-cache-max-size=10G \
  --vfs-cache-max-age=24h \
  --buffer-size=32M \
  --vfs-read-chunk-size=32M \
  --vfs-read-chunk-size-limit=256M \
  --drive-chunk-size=128M \
  --drive-pacer-min-sleep=10ms \
  --drive-pacer-burst=200 \
  --uid=1000 --gid=1000 --umask=022 \
  --log-level=INFO

ExecStop=/usr/bin/fusermount3 -uz /mnt/Drive
Restart=on-failure
RestartSec=10

[Install]
WantedBy=multi-user.target

Ejemplo 2: Montar Mega

Archivo: /etc/systemd/system/rclone-mega.service

[Unit]
Description=Montar Mega con rclone
After=network-online.target
Wants=network-online.target

[Service]
Type=simple
User=tuusuario
Group=tugrupo
ExecStart=/usr/bin/rclone mount Mega: /mnt/Mega \
    --config /home/usuario/.config/rclone/rclone.conf \
    --vfs-cache-mode full \
    --allow-other \
    --allow-non-empty \
    --transfers 4 \
    --checkers 8 \
    --poll-interval 30s \
    --dir-cache-time 2m \
    --vfs-cache-poll-interval 2m \
    --vfs-write-back 2m
ExecStop=/usr/bin/fusermount -u /mnt/Mega
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target

Activar y gestionar servicios

Una vez creados los archivos de servicio, puedes habilitarlos y gestionarlos con los siguientes comandos:

  1. Recargar la configuración de systemd:

    sudo systemctl daemon-reload
    
  2. Habilitar el servicio para inicio automático:

    sudo systemctl enable rclone-mount-drive.service
    sudo systemctl enable rclone-mega.service
    
  3. Iniciar el servicio manualmente:

    sudo systemctl start rclone-mount-drive.service
    sudo systemctl start rclone-mega.service
    
  4. Verificar el estado del servicio:

    sudo systemctl status rclone-mount-drive.service
    sudo systemctl status rclone-mega.service
    

Notas finales

Integrar Rclone con systemd te permite gestionar de forma eficiente los servicios de almacenamiento en la nube, asegurando que estén siempre disponibles como unidades locales. Esto resulta ideal para entornos donde se trabaja de manera continua con datos en la nube.

Si encuentras problemas, puedes revisar los logs de los servicios con:

sudo journalctl -u rclone-mount-drive.service
sudo journalctl -u rclone-mega.service

Referencias