Sincronizando carpetas en Ubuntu

on

Cuando no tienes un punto de trabajo fijo, o bien tienes un equipo portátil que llevas de un lado para otro, o bien haces uso de memorias USB o discos duros externos, o eres un exagerado y lo llevas todo, por si las moscas (como te puedes imaginar este es mi caso). También puedes hacer uso de soluciones tipo Dropbox que te puede ahorrar tiempo y disgustos, siempre que tengas conexión a internet y dependiendo del tamaño de lo que necesites transportar, claro. Aunque todos estos factores no siempre se dan.
142fc496eac1104b24ae30fdcb1cffa1.12773746935
En el caso de utilizar memorias o discos duros externos, la operación es trabajas en un equipo y lo que has hecho, lo copias en el disco duro y cuando llegas al punto de destino lo copias al otro equipo.

La cuestión es que copiar no es nada eficiente, y me explico. Si por ejemplo estás trabajando con planos y referencias externas de esos planos. Normalmente las referencias externas no las modificas, sin embargo la copias. Bueno, pues no la copio. ¿Y si un día la modificas?. También puede ser, que estés escribiendo un libro y cada capítulo lo tengas en un archivo de texto diferente. Estamos en lo mismo, no siempre tienes porque trabajar en un capítulo en concreto.

Este problema lo tenemos solucionado con la sincronización, que es verdaderamente eficiente. Sobre todo en Linux, como ya comenté hace algún tiempo aquí en un par de artículos De porque Linux es mejor que XP y Trabajando en red: ssh, scp y rsync.

En Ubuntu tenemos Grsync, que no es más que una interfaz gráfica de rsync, que es una herramienta que permite la transferencia de archivos de forma incremental. En pocas, palabras, se trata de comparar ambos archivos y copiar solo aquellas cosas que sean distintas. Ahora, y como veremos un poco más adelante, pueden completamente distintas, o bien, que solo se diferencien en algún aspecto, o que no tengan en cuenta algún otro.

Grsync, tiene un aspecto como el siguiente:



Como ves el aspecto es bien sencillito, aunque hay que tener presente algún pequeño detalle. Instalación y uso:

Instalación

Grsync, al igual que rsync, vienen por defecto en los repositorios de Ubuntu, y de la mayoría de distribuciones, con lo que la instalación es realmente fácil. O bien haces clic en Grsync o desde el terminal:

sudo apt-get install grsync

Uso

Lo primero que hay que tener en cuenta, y es lo que siempre se me olvida (problemas de no leer la ayuda), es que a la hora de indicar las carpetas de origen y destino, si en la de origen pones una barra al final en la de destino no te crea una carpeta nueva. Es decir, una barra al final de la carpeta de origen indica que copia el contenido, en caso de no ponerla copia la carpeta y el contenido. Una imagen vale mas que mil palabras.

Pongamos por ejemplo que queremos sincronizar las imágenes que tenemos en la carpeta “origen” a la carpeta “destino”, y lo que hacemos es lo siguiente:



Nos llevaremos una desagradable sorpresa, por que lo que nos encontramos en destino es:



“Amigo, ahora entiendo a lo que te referías con poner la barra al final”. Es decir, que lo que habrá que hacer es:



Y al hacerlo así tendremos un resultado algo inesperado:



Nos ha dejado el directorio origen. “Pues menuda sincronización!!!”. No te pongas así. Tienes que marcar la opción “Borrar en destino” y ahora si que funcionará correctamente.



En este momento es cuando aprecias la sincronización. Grsync, compara ambas carpetas y copia y/o borra lo que necesite:



De cualquier forma, siempre podemos hacer una previsualización de las tareas que se van a realizar, para evitar llevarnos ninguna sorpresa, para ello haremos clic sobre el botón de información:



Y nos arrojará un resultado como el siguiente:



donde como puedes ver lo primero que te indica es el comando con sus correspondientes parámetros ejecutado, y a continuación el resultado obtenido.

Otra opción interesante, es cuando solo nos importa si se ha modificado el tamaño del archivo, no nos importa si se modifica la fecha o otros. Para probarlo, he modificado la fecha de un archivo utilizando el comando touch:

touch -t 201002021200 netbook-wallpapers-nature-1024x600-120.jpg


Sin marcar la opción indicada el resultado es:



Hay dos archivos, uno que he modificado el contenido, y el otro, al que solo he cambiado la fecha con Touch:



Y el resultado es:


Bloggroll

Páginas vistas en total

Blog Archive