Realizar copias de seguridad de Android a Ubuntu con SShelper

El otro día escribí un artículo sobre como enviar archivos entre Ubuntu y Android, “Compartir archivos entre diferentes plataformas con Send Anywhere”, permitiendo además compartir archivos durante 24 horas.

Sin embargo, si lo que quieres hacer es realizar copias de seguridad de Android a Ubuntu, la solución la tenemos en rsync, pero del lado de Ubuntu.

Lo cierto, es que ya he escrito algunos artículos al respecto, como puede ser Sincronizando directorios de Android y Linux con rsync backup, SSHDroid, Ubuntu y rsync, sincronizando tu móvil Android o BotSync, sincronización automática entre tu android y Ubuntu, sin embargo, la solución que voy a comentar, es otra opción muy interesante y que tiene muchas posibilidades.

Realizar copias de seguridad de Android a Ubuntu con SShelper

Realizar copias de seguridad de Android a Ubuntu con SSHelper

SSHelper es un servidor avanzada multiprotocolo para Android, disponible a partir de la versión 3.2, y que funciona tanto en un dispositivo normal como en uno rooteado.

SSHelper funciona tanto como aplicación como servicio, de forma que si trabaja de esta segunda manera, lo hace en segundo plano, proporcionando protocolos de comunicación seguros sin necesidad de que le prestemos atención.

En particular, en Ubuntu, además de poder trabajar vía ssh, también podemos hacerlo vía sftp, o utilizar aplicaciones como rsync para realizar nuestros backup y tener nuestras fotografías guardadas en nuestro ordenador personal.

Realizar copias de seguridad de Android a Ubuntu con Nautilus

Aunque lo que voy a comentar a continuación no se pueda considerar la mejor solución para realizar copias de seguridad de Android a Ubuntu, es una opción, aunque como no es la mas acertada como comentaré mas adelante.

Sin embargo, es una manera realmente muy sencilla de copiar nuestros archivos entre las dos plataformas, aunque lo que es sincronizar ya es otra cosa.

Realizar copias de seguridad de Android a Ubuntu con rsync

Aquí es donde encontramos la guinda del pastel, la operación es realmente sencilla, y podemos crear nuestro propio script para realizar las sincronizaciones, que incluso, podemos poner en el arranque de nuestra sesión de Ubuntu para que cuando iniciemos nuestro portátil, sincronice todos nuestros dispositivos móviles, y de esta forma tengamos toda nuestra información sensible a buen recaudo.

Así nuestro script puede ser algo como,

    rsync -rltvz 192.168.1.40:/sdcard/DCIM/Camera/ /home/usuario/Fotos/

aquí tenemos que introducir la dirección IP del móvil, el directorio del móvil queremos sincronizar y el directorio de nuestro ordenador que queremos sincronizar.

El problema nos lo encontramos en que la dirección IP del móvil puede ser variable. Para resolver este problemilla, podemos emplear la utilidad arp, de forma que nuestro script puede quedar como,

MIP=$(arp -n | grep aa:bb:cc:dd:ee:ff | cut -d' ' -f1)
rsync -rltvz $MIP:/sdcard/DCIM/Camera/ /home/usuario/Fotos/

Para localizar la dirección IP de nuestro móvil, utilizamos la dirección MAC del mismo que siempre es fija, y problema solucionado.

Este script lo guardaremos en /usr/bin/sincroniza.sh para poder ejecutarlo desde cualquier lugar.

Evidentemente podemos añadir tantos dispositivos como consideremos en un único script, e incluso, si lo elaboramos un poco, podemos hacer que se sincronice cada hora, o incluso cuando apaguemos nuestro equipo.

Ahora solo nos queda añadir esto al inicio de la sesión. Para ello, creamos el archivo

~/.config/autostart/sincroniza.desktop

con el siguiente contenido,

[Desktop Entry]
Type=Application
Exec=/usr/bin/sincroniza.sh
Hidden=false
NoDisplay=false
X-GNOME-Autostart-enabled=true
X-GNOME-Autostart-Delay=2

La última línea nos permite que se retrase dos segundos el arranque de la aplicación.

8 comentarios en “Realizar copias de seguridad de Android a Ubuntu con SShelper

  1. Ryke hace 5 años

    Hola. Interesante artículo. Aunque teniendo Grsync (o rsync) y todas sus posibilidades, la pregunta sería… ¿existe alguna forma de «montar» en Ubuntu los archivos de Android, de forma tal que sean reconocidos por Grsync?. Gracias, un saludo y felicidades por el blog !!! 🙂

    1. Ryke hace 5 años

      Hola. Muchas gracias por el nuevo artículo «Sincronización entre Ubuntu y Android»… la lástima es que no me acaba de ir bien porque las carpetas han de tener el mismo nombre. Yo sigo buscando que el Grsync funcionase 😉 … he vuelto a mirar el tema, y el problema no es que no monte, sino que no deja escribir en la SD (Android 5).
      Tengo el movil rooteado y en teoría se debería poder… de hecho, si copio archivos con Nautilus, puedo hacerlo sin problemas. En cambio, con Grsync no puedo. Hago la simulación de la sincronización y va bien, pero cuando ejecuto, no puede escribir (aunque sí puede borrar… no entiendo nada). En fin, si se te ocurriese algo, me dices. Gracias y un saludo !! 🙂

      1. El atareao hace 5 años

        Hola Ryke,
        Muchas gracias por tus comentarios.
        Respecto a lo que comentas de Grsync, a mi en ocasiones me ha dado algún problema al modificar la hora de los directorios. Para evitarlo utilizo la opción
        –omit-dir-times. Otro problema puede ser con los permisos de usuario y grupo, que no te deje modificarlos por alguna razón… Prueba con ello, y me dices.
        Yo no tengo rooteado el móvil y me deja hacerlo añadiendo la opción indicada anteriormente.
        Saludos

        1. Ryke hace 5 años

          Hola, muchas gracias por tu ayuda. Acabo de probar añadiendo la opción que me dices, pero no funciona.
          He probado y he visto que tampoco funciona si copio a la memoria interna del móvil, así pues no se trata de un tema de permisos de la SD.
          Por si sirve de pista, este es el path del móvil en Grsync:
          /run/user/1000/gvfs/mtp:host=%5Busb%3A001%2C004%5D/Phone/descargar/
          lo que hago es seleccionarlo directamente desde el «Abrir» … no sé si hay que hacerlo de otra manera ?
          Y este el mensaje de error:
          rsync: mkstemp «/run/user/1000/gvfs/mtp:host=%5Busb%3A001%2C004%5D/Phone/descargar/.20150810_185214_r.jpg.8OsS1b» failed: Operation not supported (95)
          rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1183) [sender=3.1.1]
          Estado del proceso de salida de rsync: 23
          Hace todo bien, pero creo que al intentar escribir es cuando da el error.
          Si se te ocurre algo, me dices.
          Un saludo

  2. Pete hace 5 años

    Creo que arp a secas no siempre va a detectar el teléfono, ya que si el teléfono no se ha estado comunicando con el ordenador no va a aparecer en la cache de arp. Arp-scan debería ser más fiable, aunque requiere privilegios. También se podría asegurar que exista esa comunicación previa haciendo ping, o usar nmap, aunque sería más lento.

  3. joshsoj hace 5 años

    Buen artículo. Te sigo desde hace un tiempo sin hacer ningún comentario. Ahora lo hago. Gracias por aportar soluciones y nuevas posibilidades al mundo LINUX.

    1. El atareao hace 5 años

      Muchas gracias Joseba,
      Te agradezco enormemente tu apoyo. Comentarios como el tuyo son los que me ayudan a seguir escribiendo en los momentos difíciles.

      Gracias y un saludo

  4. Juan Ligero Lopez hace 5 años

    Buenas, no acabo de poder probarlo, ejecuto el código pero obtengo un conection refused, hay que configurar algo en la app?

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *