Tras varios intentos utilizando aplicaciones gráficas para sincronizar archivos del teléfono móvil (android) con el computador de escritorio (gnu/linux) he llegado como tantas veces a la convicción de que el manejo vía terminal es mucho más práctico (para cosas puntuales kdeconnect
está muy bien y funciona de maravilla).
Lo que no esperaba es que fuese tan sencillo y útil. Aquí describo el procedimiento.
- Instalar
termux
yrclone
en teléfono
Toda la “magia” del procedimiento se basa en termux un emulador de terminal para Android que se puede descargar en F-Droid y que además de ejecutar bash
también permite descargar paquetes de varios repositorios.
Hay varias posibilidades para enviar y recibir archivos, desde rsync
hasta scp
, pero dado que ya hace tiempo uso rclone para respaldos, fue una agradable sorpresa ver que también está en los repositorios de termux
.
Una vez instalado termux
en el teléfono, ya se puede descargar e instalar rclone
.
pkg install rclone
- Configurar rclone
Lo siguiente es configurar una conexión con el computador/ordenador de escritorio (o para el caso, de cualquier otro dispositivo). Utilizo el tipo de conexión sftp, que implica tener sshd
corriendo en la máquina destino (común en todos los sistemas gnu/linux). Una ventaja de utilizar rclone es que puede trabajar con múltiples configuraciones o máquinas-destino.
Por supuesto, hay que colocar en la configuración el número IP de la máquina destino porque sería un proceso más largo asignar un nombre fijo, etc. Como los routers tienen tendencia a asignar el mismo número a los mismos dispositivos hay alta probabilidad de que no haya que cambiarlo a menudo.
- Permitir a
termux
leer estructura de archivos
Este paso es necesario para poder acceder a los archivos del teléfono. Se puede hacer por la interfaz gráfica en los “ajustes” de Android o directamente en termux
:
termux-setup-storage
- Ejecutar
rclone
Para tener más opciones disponibles lo mejor sería tener configurado también rclone
en el computador, supongamos una configuración llamada ‘MAQ’, y otra configuración llamada ‘TLF’ en el dispositivo Android. De este modo se puede iniciar la comunicación desde cualquiera de los dos dispositivos. Además se puede elegir una sincronización total (rclone sync ...
) o lo que prefiero, un modo de copia, en el que el destino sólo se actualiza sin eliminar archivos.
rclone copy TLF:/storage/emulated/0/ MAQ:/home/usuario/destino
Para enviar archivos o directorios al teléfono se cambia la orden:
rclone copy MAQ:/home/usuario/origen TLF:/storage/emulated/0/destino
Lo más prudente sería crear unos ‘scripts’ en cada dispositivo para facilitar la ejecución. También se podría hacer periódicamente (con cronie
en termux
) que fue mi primera intención pero dada la movilidad del teléfono y el posible cambio de número IP he preferido hacerlo manualmente desde cualquiera de los dos dispositivos.
Hay que recordar que para que esto funcione debe estarse ejecuntando tanto termux
como sshd
(el servidor SSH) si el destino es el teléfono. Un inconveniente menor, porque la transferencia de archivos y directorios funciona muy bien, incluso en gran número.