Rclone y Mac
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: priv
y 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.
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).
Instalación de rclone en macOS
Para instalar rclone en macOS, sigue estos pasos:
-
Abre el Terminal en tu Mac.
-
Instala Homebrew si aún no lo tienes instalado.
-
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
-
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:
-
Abre un Terminal en tu distribución Linux.
-
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.
-
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 |
-
Ejecuta el siguiente comando para iniciar la configuración de rclone:
rclone config
-
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.
-
Proporciona la información requerida, como las credenciales de acceso, y asigna un nombre al almacenamiento remoto para referencia futura.
-
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 Baul
y 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 elsync
:
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
:
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.
Para instalarlo en macOS, sigue estos pasos:
-
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
-
Al ejecutarlo configuro el path al ejecutable y la ubicación del fichero de configuración
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`