Sep. 16, 2020

Sincronización de archivos sin problemas entre smartphone y tablet

Usando unison para sincronizar automáticamente entre GNU/Linux y el iPhone

Para optimizar mi flujo de trabajo, buscaba una manera de acceder sin problemas a los mismos archivos tanto en mi computadora como en mi teléfono inteligente. Esto es útil cuando quieres enviar archivos rápidamente desde tu computadora usando tu teléfono inteligente a través de varias aplicaciones de mensajería y viceversa. Sigue leyendo para descubrir cómo lo hice.

La meta: archivos compartidos sin problemas

Cuando estoy trabajando, usualmente uso una tableta y un teléfono inteligente. Uso una tableta como computadora principal. Mi iPhone es muy útil como segunda pantalla. También lo uso para enviar archivos, capturas de pantalla y fotos a personas usando las diferentes aplicaciones de mensajería que se ejecutan en iOS.

Para bien o para mal, hay un cambio en curso del correo electrónico a aplicaciones como Slack, WhatsApp, iMessage y Signal. Mi iPhone es la puerta de entrada a estos canales de comunicación. Como no quiero usar iCloud Drive o DropBox, necesitaba otra forma de tener mis archivos sin problemas tanto en mi tableta como en mi teléfono inteligente.

Conoce a Unison: el sincronizador de archivos multiplataforma

Después de una búsqueda rápida, encontré Unison en el repositorio de software de Debian. Como mi tableta funciona con Debian GNU/Linux, busqué una forma de sincronizar archivos de forma segura utilizando estándares abiertos. Unison hace esto usando rsync sobre SSH/SFTP. Esto significa que funcionará con mi servidor NAS existente que reside en un centro de datos.

Aunque se podría configurar el uso compartido de archivos directamente entre la tableta y un teléfono inteligente, utilizo el servidor NAS central para permitir la comunicación entre mis dispositivos, incluso si no están en la misma red. Esto sucede cuando uno (o ambos) dispositivos están en redes celulares. Para acceder a los archivos desde mi iPhone, utilizo la aplicación Secure ShellFish que se integra perfectamente con la aplicación nativa de archivos de iOS.

Sincronizando archivos entre mi tableta y mi iPhone: el servidor NAS actúa como una estación intermedia; superando las diferencias en protocolo y conexión
Sincronizando archivos entre mi tableta y mi iPhone: el servidor NAS actúa como una estación intermedia; superando las diferencias en protocolo y conexión

Configurar Unison es fácil. Deberías consultar la documentación en inglés en el sitio web de Unison o seguir esta gran guía de Unison en alemán. Puedes ejecutar Unison desde la línea de comandos, pero me gusta que se ejecute automáticamente utilizando un perfil preconfigurado y un trabajo cron que se ejecuta con frecuencia.

Mi perfil de Unison con parámetros para la 'WillemCloud'
Mi perfil de Unison con parámetros para la 'WillemCloud'

El perfil de configuración de Unison es sencillo: defines dos carpetas raíz y puedes usar algunas opciones para ajustar el comportamiento predeterminado. He configurado mi perfil para hacer las cosas en lotes y decidir automáticamente qué archivos conservar. Tengo una carpeta "Cloud" dedicada que elijo compartir entre mis dispositivos, actúa como una especie de carpeta "Escritorio". Consulta la página man de Unison para ver todos los parámetros posibles (intenta escribir 'man unison' en tu terminal).

La autenticación se realiza utilizando la configuración SSH de tu sistema. Puedes (y debes) configurar la autenticación utilizando claves de cliente compartidas. Esto habilitará la comunicación SSH sin contraseña entre tu cliente y el servidor. Una vez que hayas probado y configurado tu perfil de Unison, puedes crear un trabajo cron para sincronizar automáticamente tus archivos. Debido a que las transferencias de archivos pueden tardar más tiempo, el trabajo cron solo debe ejecutarse si la ejecución anterior se completó. Puedes hacer esto usando un archivo PID, que actúa como una verificación.

Mi comando cron está envuelto en una comprobación para evitar que se inicie la sincronización cuando ya se está ejecutando
Mi comando cron está envuelto en una comprobación para evitar que se inicie la sincronización cuando ya se está ejecutando

Configurar Secure ShellFish en iOS

Una vez que tu computadora esté sincronizando archivos con tu NAS, debes configurar tu teléfono inteligente. Utilizo un iPhone y, por lo tanto, busqué la mejor aplicación que se integra bien con la aplicación de archivos nativa de iOS. Después de probar diferentes aplicaciones, encontré que Secure ShellFish es la mejor:

Descarga y configura Secure ShellFish para conectarte a mi
Descarga y configura Secure ShellFish para conectarte a mi "WillemCloud"

Lo mejor de la aplicación Secure ShellFish es que se integra en la aplicación de archivos nativa de iOS (y las API del proveedor de almacenamiento de iOS subyacentes). ¡Esto significa que todas las aplicaciones que acceden al almacenamiento local pueden conectarse con tu NAS! Esto permite el acceso a tus archivos desde prácticamente cualquier aplicación.

Acceder a los archivos usando la aplicación nativa Archivos de iOS te permite usar muchas aplicaciones y atajos diferentes
Acceder a los archivos usando la aplicación nativa Archivos de iOS te permite usar muchas aplicaciones y atajos diferentes

Conclusión

Optimizar tus flujos de trabajo diarios realmente puede brindarte enormes beneficios a largo plazo. ¡Al hacer posible compartir archivos sin problemas entre mi tableta y mi teléfono inteligente, hice precisamente eso!

Al automatizar la sincronización, se mueve al fondo. Ya no tengo que pensar en ello como un proceso avanzado que involucra diferentes protocolos, servidores y aplicaciones. Simplemente funciona, ¡y así es exactamente como me gusta!

Los mismos archivos tanto en mi teléfono como en mi tableta, ¡simplemente funciona!
Los mismos archivos tanto en mi teléfono como en mi tableta, ¡simplemente funciona!