logo rclone

En este apunte explico cómo gestiono mis datos en un Mac con iCloud y rclone. Mi método cumple con los objetivos de poder trabajar a la máxima velocidad y desde cualquier sitio con los datos más utilizados, contar con un almacén extra para los datos menos accedidos y por supuesto múltiples copias de seguridad.

Trabajo con el disco SSD interno del Mac, varios discos externos, iCloud, un linux remoto y pensando en contratar con dropbox o Google. Muchos sitios, diferentes tecnologías, velocidades, necesidades. La herramienta rclone es perfecta para ayudarme con todo esto.


Introducción

Rclone es una poderosa herramienta de línea de comandos que permite gestionar y sincronizar archivos y directorios. Es muy versátil, te ayudará a administrar tus datos de manera efectiva, hacer copias de seguridad en servicios en la nube, en discos externos locales, remotos y mantenerlos sincronizados entre todos ellos.

Mis datos están en dos sitios: privy Baul. La carpeta priv está alojada en iCloud, es donde tengo los datos principales (accesibles desde el entorno Apple, iPhone, iPad, etc) y la tengo completamente sincronizada en el disco duro interno del Mac. El sitio Baul es un disco duro externo SSD (Thunderbolt 4) muy rápido, donde tengo el almacén al que solo necesito acceder cuando trabajo en el Mac; me recuerda al típico disco D:\ de otra época.

Diseño completo de mis discos y backups

Quiero asegurar todo, uso TimeMachine para el backup completo del disco principal del Mac a un disco USB extrno (suficientemente rápido). Lo configuro y el sistema operativo se encarga de todo. Además hago las copias de priv y Baul en varios sitios usando rclone: disco externo Trastero, un linux remoto y en el futuro Dropbox o Google.


Configuración de Time Machine

Para configurar Time Machine en un Mac, primero conecta un disco duro externo y ábrelo en “Preferencias del Sistema”, luego selecciona “Time Machine” y activa la función, elige la unidad externa como destino, configura las opciones de respaldo si es necesario y, finalmente, inicia Time Machine para que realice copias de seguridad automáticas de tu sistema en la unidad externa, asegurándote de mantenerla conectada para mantener las copias de seguridad actualizadas

En mi caso he configurado un disco externo USB 3.0 (Seagate Portable Drive) de 5TB bastante asequible y con un buen balance entre fiabilidad (mecánico de 2,5 pulgadas) y velocidad (120 MB/s).

Configuración de Time Machine


Instalación de rclone en macOS

Para instalar rclone en macOS, sigue estos pasos:

  1. Abre el Terminal en tu Mac.

  2. Instala Homebrew si aún no lo tienes instalado.

  3. Ejecuta el siguiente comando para instalar rclone:

    brew install rclone
    :
    => Caveats
    Homebrew's installation does not include the `mount` subcommand on MacOS.
    zsh completions have been installed to:
    /opt/homebrew/share/zsh/site-functions
    
  4. Verifica que rclone se haya instalado correctamente:

    rclone version
    


Instalación de rclone en Linux

La instalación de rclone en Linux es igualmente sencilla. A continuación, se describen los pasos generales:

  1. Abre un Terminal en tu distribución Linux.

  2. Puedes utilizar el administrador de paquetes de tu distribución para instalar rclone. Por ejemplo, en Ubuntu, puedes ejecutar:

    sudo apt-get install rclone
    

    En otras distribuciones, como Fedora, CentOS o Debian, puedes utilizar el administrador de paquetes correspondiente.

  3. Verifica la instalación ejecutando:

    rclone version
    


Mi caso de uso

Como decía, el disco duro principal interno del Mac “Macintosh HD” (HD a partir de ahora) tiene el Sistema Operativo, las aplicaciones y el HOME de mi usuario (/Users/luis) con la carpeta priv. El disco externo SSD Thunderbolt 4 (1000MB/s) Baul tiene el espacio extra para datos que comentaba al principio.

Dato Origen Dónde se hace el backup
HD Disco interno TimeMachine disco externo USB
priv iCloud (Datos principales) 1) por la sincronización iCloud <> Local y 2) Backups en Trastero (rclone), en linux (rclone) y futuro Dropbox/Google (rclone)
Baul Disco externo (1000MB/s) Backups en Trastero (rclone) y en linux remoto (rclone)
Trastero Disco externo Este disco externo SSD (500MB/s) los uso exclusivamente como destino para los backups. ¿Porqué tan rápido? pues porque también guardo alguna cosa extra y si se rompe Baul podrá dar un buen servicio mientras busco un reemplazo


Configuración de rclone

Antes de nadaa es necesario configurar los destinos (almacenamientos remotos):

 Nota: Toda la configuración reside en ~/.config/rclone/rclone.conf
  1. Ejecuta el siguiente comando para iniciar la configuración de rclone:

    rclone config
    
  2. Puedes seguir las instrucciones del asistente de configuración para añadir un nuevo almacenamiento remoto. Puedes elegir entre una amplia gama de servicios en la nube y sistemas de archivos locales.

  3. Proporciona la información requerida, como las credenciales de acceso, y asigna un nombre al almacenamiento remoto para referencia futura.

  4. Una vez configurado el almacenamiento remoto, puedes utilizar rclone para sincronizar tus directorios con él.

En mi caso voy a empezar con un par de discos Bauly Trastero. Al montarse en mi Mac quedan disponibles para ser utilizados por rclone. Así es como quedó mi fichero rclone.conf tras mi configuración inicial:

[Luis]
type = alias
remote = /Users/luis

[Baul]
type = alias
remote = /Volumes/Baul

[Trastero]
type = alias
remote = /Volumes/Trastero

[iCloud]
type = alias
remote = /Users/luis/Library/Mobile Documents/com~apple~CloudDocs

IMPORTANTE: Respecto a la carpeta priv, que realmente reside en iCloud, para que TODO el contenido de dicha carpeta esté siempre completamente sincronizado en el disco duro interno local, y poder copiarlos a otro sitio con rclone, es importante indicarle a macOS que se los baje a local. ¿Cómo?, pues desde Finder > iCloud > busco y botón derecho sobre priv > “Descargar ahora”. Se bajará una copia completa que sincroniza permanentemente con iCloud.


Ejecutar rclone

Veamos el típico ejemplo de sincronización de directorios entre dos discos locales. Imaginemos que queremos hacer copia de seguridad en Trastero de varios directorios. Recuerda preparar las carpetas destino de los Backups

mkdir -p /Volumes/Trastero/Baul
mkdir -p /Volumes/Trastero/iCloud
mkdir -p /Volumes/Trastero/priv
mkdir -p /Volumes/Trastero/Other

Estos serían algunos ejemplos:

rclone sync --progress --copy-links --skip-links --exclude="*.socket" --exclude=".DS_Store*" Baul:fotos Trastero:Baul/fotos
rclone sync --progress --copy-links --skip-links --exclude="*.socket" --exclude=".DS_Store*" Baul:gestión Trastero:Baul/gestión
rclone sync --progress --copy-links --skip-links --exclude="*.socket" --exclude=".DS_Store*" iCloud:priv Trastero:iCloud/priv
rclone sync --progress --copy-links --skip-links --exclude="*.socket" --exclude=".DS_Store*" Luis:Pictures/Lightroom Trastero:Other/Lightroom

Ah!, recomiendo usar --dry-run o check para probar primero. Otra opción es crearse un fichero de filtraje donde especifico qué quiero excluír e incluir. Por ejemplo, para los directorios de Baul, creo el fichero filter-from-Baul.txt

- .DS_Store
- _gsdata_
- .DocumentRevisions-V100
- .Spotlight-V100
- .TemporaryItems
- .Trashes
- .fseventsd
+ /fotos**
+ /gestión**
- *
  • Primero hago un check y luego el sync:
rclone check --progress --copy-links --filter-from ~/.config/rclone/filter-from-Baul.txt Baul: Trastero:
rclone sync --progress --copy-links --filter-from ~/.config/rclone/filter-from-Baul.txt Baul: Trastero:


Sincronización con Google Drive

Para sincronizar tus directorios con Google Drive, utiliza el siguiente comando de ejemplo:

rclone sync /ruta/al/priv GoogleDrive:/carpeta-en-google-drive
rclone sync /ruta/al/work GoogleDrive:/carpeta-en-google-drive
rclone sync /ruta/al/Negativos GoogleDrive:/carpeta-en-google-drive
rclone sync /ruta/al/Baul GoogleDrive:/carpeta-en-google-drive

Asegúrate de reemplazar /ruta/al/priv, /ruta/al/work, /ruta/al/Negativos, y /ruta/al/Baul con las rutas correctas de tus directorios locales y GoogleDrive:/carpeta-en-google-drive con la ubicación deseada en Google Drive.


Sincronización con un Ordenador Remoto

Para sincronizar tus directorios con un ordenador remoto que ejecute rclone servidor, puedes utilizar el siguiente comando de ejemplo:

rclone sync /ruta/al/priv OrdenadorRemoto:/ruta/en/el/servidor/priv
rclone sync /ruta/al/work OrdenadorRemoto:/ruta/en/el/servidor/work
rclone sync /ruta/al/Negativos OrdenadorRemoto:/ruta/en/el/servidor/Negativos
rclone sync /ruta/al/Baul OrdenadorRemoto:/ruta/en/el/servidor/Baul

Reemplaza /ruta/al/priv, /ruta/al/work, /ruta/al/Negativos, /ruta/al/Baul, OrdenadorRemoto, y /ruta/en/el/servidor con las rutas y nombres de servidor correctos.

Con estos comandos, puedes mantener tus directorios sincronizados tanto en la nube como en un servidor remoto. Rclone te proporciona una forma eficaz de gestionar tus datos en macOS y Linux, permitiéndote respaldarlos y mantenerlos actualizados en múltiples ubicaciones.

En resumen, rclone es una herramienta esencial para cualquier usuario que necesite sincronizar y respaldar datos en macOS y Linux. Su versatilidad y facilidad de uso hacen que sea una elección sólida para la gestión de archivos en la nube y la sincronización entre dispositivos.


Trabajar en modo gráfico.

Tenemos un par de opciones. Yo no las uso, porque una vez que te pones a jugar y probar con la versión del CLI la verdad es que resulta muy cómodo poner todos los comandos en un script y vas mucho más rápido.

GUI Experimental embebido en rclone

Existe un GUI experimental que puedes instalar para trabajar en modo gráfico. Basta con ejecutar el siguiente comando, que se bajará todo lo necesario y arrancará un servidor web local. Arranca un navegador y se conecta (puedes evitarlo con --rc-web-gui-no-open-browser).

En este ejemplo pido que use un usuario/password concretos y que sea “verbose”, cambia el usuario y la contraseña a lo que quieras. También puede funcionar sin autenticación con --rc-no-auth

rclone rcd --rc-web-gui --rc-user luis --rc-pass mipase -vv
:
2023/11/18 12:38:47 DEBUG : rclone: Version "v1.64.2" starting with parameters ["rclone" "rcd" "--rc-web-gui" "--rc-user" "luis" "--rc-pass" "mipase" "-vv"]
2023/11/18 12:38:47 DEBUG : Current tag: v2.0.5, Release tag: v2.0.5
2023/11/18 12:38:47 NOTICE: Web GUI exists. Update skipped.
2023/11/18 12:38:47 NOTICE: Serving Web GUI
2023/11/18 12:38:47 INFO  : Using --user luis --pass XXXX as authenticated user
2023/11/18 12:38:47 NOTICE: Serving remote control on http://127.0.0.1:5572/
2023/11/18 12:38:47 DEBUG : login_token "bHVp12343535hc2U="
2023/11/18 12:38:47 INFO  : /: 127.0.0.1:59654: Unauthorized request from
:
Login en el GUI Experimental
GUI Experimental


RcloneBrowser

Otra opción, si quieres una versión estable, es RcloneBrowser, un GUI multi plataforma que soporta macOS, GNU/Linux, la familia BSD y Windows.

Logo del proyecto

Para instalarlo en macOS, sigue estos pasos:

  1. Descarga la última versión desde https://github.com/kapitainsky/RcloneBrowser/releases. En el momento de la publicación utilicé rclone-browser-1.8.0-a0b66c6-macos.dmg

  2. Al ejecutarlo configuro el path al ejecutable y la ubicación del fichero de configuración

Configuración básica


Actualización

Para tenerlo actualizado a la última versión, puedes utilizar el siguiente comando:

  • En macOS
brew update
brew upgrade
  • En Linux
apt update && apt upgrade -y 
  • Para actualizar el GUI experimental:
rclone rcd --rc-web-gui --rc-web-gui-update
# Si el GUI está roto se puede forzar el update con `--rc-web-gui-force-update`