Sincronización desantendida de una memoria USB a Ubuntu

Introducción

Aunque en otras ocasiones he escrito sobre alguna que otra aplicación con interfaz gráfico que permite realizar sincronización entre diferentes directorios, como pueden ser FreeFileSync o Grsync, realmente en la mayor parte de casos, no necesitamos supervisar este tipo de tareas, sino que simplemente queremos que se hagan y punto.

Desde luego, la sincronización de directorios es una tarea que se puede realizar de forma completamente desatendida, así que diariamente o con el intervalo de tiempo que consideremos podemos programar la sincronización para que se haga.

Pero, también podemos considerar en realizar esta operación cuando conectemos un dispositivo usb (ya sea una memoria USB o un disco duro USB) a nuestro ordenador. Este, probablemente sea el uso mas interesante para los que llevamos un disco duro a cuestas con toda la información, por no subirla a algún servicio en la nube, o incluso de nuestro móvil Android, de forma que al conectarlo mediante el cable USB directamente copie todas las fotografías a nuestro directorio…

Ubuntu, al igual que otras muchas distribuciones nos ofrece herramientas para realizar este tipo de operaciones de una forma mas o menos sencilla. Veamos…

131201_0001_udf.png

Sincronización desatendida

Seleccionar el dispositivo

Lo normal es que la sincronización la realicemos entre un determinado dispotivo USB y nuestro equipo, aunque como veremos mas adelante podemos seleccionar varios, o según definamos las reglas hacerlo para cualquier dispositivo. Lo cierto es que en este caso, también sucederá que al conectar un ratón intentará sincronizarlo, lo cual no tiene mucho sentido.

Suponiendo que queremos sincronizar una determinada memoria usb, podemos identificarla por la identificación del vendedor y el modelo. Para ello el primer paso es introducir nuestra memoria usb y nada mas hacerlo, ejecutar el siguiente comando,

dmesg | tail

esto nos arroja el siguiente resultado

131201_0002_atareao_s@saucy: -home-atareao_s.png

Es decir, nuestro disco está accesible en /dev/sdd

Ahora que sabemos donde tenemos nuestro dispositivo, necesitamos conocer la información necesaria para identificarlo cada vez que lo conectemos a nuestro equipo. Para esto, ejecutamos el siguiente comando, donde indicamos el valor obtenido anteriormente (/dev/sdd),

udevadm info -a -p $(udevadm info -q path -n /dev/sdd)

que nos arroja el siguiente resultado,

131201_0003_atareao_s@saucy: -home-atareao_s.png

De aquí tenemos que extraer los valores resaltados para introducirlos en nuestro regla UDEV

Creando la regla

El siguiente paso es establecer una regla UDEV de forma que cuando introduzcamos nuestro dispostivo USB en nuestro equipo, este lo reconozca y ejecute el comando que necesitamos. Para ello creamos el siguiente archivo,

/etc/udev/rules.d/50-backup.rules

Que tendrá el siguiente contenido,

KERNEL=="sd?1", ACTION=="add", SUBSYSTEMS=="scsi", ATTRS{vendor}=="UFD     ", ATTRS{model}=="                ", RUN+="/home/atareao_s/backups/backup-data.sh %k"

En este caso tanto el atributo vendor como el model son algo extraños. Tendrás que modificar además de estos parámetros el correspondiente al archivo a ejecutar cuando introduces el dispositivo USB.

Acciones a realizar

Por último nos queda definir las acciones a realizar cuando introducimos el dispositivo USB. Esto lo definimos con el siguiente ejecutable,

#!/bin/bash

# Cambia el directorio por el que mas te interese
if [ ! -d "/media/atareao_s/temporal/" ] ; then mkdir "/media/atareao_s/temporal/" ; fi

# Esto es para montar una memoria formateada con FAT32. En otros casos consulta el manual de mount
/bin/mount -t vfat -o shortname=mixed,iocharset=utf8 /dev/$1 "/media/atareao_s/temporal/"

# De esta manera sincroniza desde el dispositivo USB a nuestro equipo, pero sin borrar el contenido de nuestro equipo, y copiando solo aquellos archivos que no existen.
rsync -rtv --modify-window=2 "/media/atareao_s/temporal/udf/" "/home/atareao_s/backups/udf/"

# Fuerza la sincronización antes de desmontar
sync

# Desmontamos
umount "/media/atareao_s/temporal/"

#Borramos el directorio
rmdir "/media/atareao_s/temporal"

Conclusiones

Aunque inicialmente pueda parecer algo complejo, lo cierto es que resulta realmente sencillo, sobre todo, una vez que has borrado algo que no deberías. Esto es una paso mas hacia desentenderse de copiar tus documentos.

Desde luego, lo óptimo es que esta operación se hiciera vía WiFi, para el caso de teléfonos, sin necesidad de conectar vía USB. Esto lo puedes hacer con herramientas como BitTorrent Sync, mas o menos…


Más información,

Deja una respuesta

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