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…
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
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,
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,