Sincronizando carpetas en Ubuntu

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.

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:

Grsync: default _001

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:Grsync: default _004

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

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

Grsync: default _009

Y al hacerlo así tendremos un resultado algo inesperado:

destino_006

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.

Grsync: default _007

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

destino_008

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:

Grsync: default _010

Y nos arrojará un resultado como el siguiente:

rsync: stopped_011

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:

rsync: stopped_012

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

Grsync: default _013

Y el resultado es:

rsync: stopped_014

Como ves, no toma en consideración al que modifiqué la fecha. Correcto!

Bueno, pues, ya tienes una pincelada de Sincronización. Espero que te sirva.

23 comentarios en “Sincronizando carpetas en Ubuntu

  1. AL
    Alexgabi hace 14 años

    Freefilesync un programa de sincronización muy bueno.

      1. PE
        Pedro Perez Paccini hace 12 años

        Buenas, ¿esta aplicación permite automatizar la sincronización?, Que lo haga una vez al día, al iniciar la sesión… de forma que no te tengas que acordar de hacerlo manualmente?
        Gracias

        1. EL
          El atareao hace 12 años

          esta aplicación no lo permite pero siempre puedes utilizar cron para esto.

  2. JO
    José GDF hace 14 años

    Puedes estar seguro, es justo lo que buscaba. Gracias.

      1. JO
        José GDF hace 7 años

        Seis años después y ahora es cuando me da por probar la aplicación gráfica. Hasta ahora lo hacía con la terminal a pelo… Será la edad xD

  3. XO
    XoseM hace 14 años

    o sea, sincronizado y «sin nube». Todos los datos están en «tus» ordenadores. Mmmmm! I like it.

  4. GU
    guadalupe hace 14 años

    MUCHAS GRACIAS, ya apredi algo nuevo y muy interesante, nuevamente gracias

  5. EL
    El atareao hace 14 años

    Gracias a todos por vuestros comentarios y apoyo. Un saludo

    1. AN
      Andresprada66 hace 14 años

      Gracias por el tutorial. Una consulta, puede ser la carpeta de destino una unidad carpeta en otra unidad NAS de la misma red donde tengo la carpeta origen?

      1. AL
        Alonso Lujan Torres Taño hace 13 años

         Me imagino que sí.

        Cualquier carpeta a la que se tenga acceso desde el equipo desde el que se ejecuta el sync debería poder ser tanto origen como destino.

  6. LU
    lucascordobes hace 14 años

    soy un tipo sincro… dropbox, smartphone, notebook y desktop…

    buena data por que pienso comprar un HD externo

  7. AL
    Alonso Lujan Torres Taño hace 13 años

    Muchas gracias, me ha servido para el trabajo.

  8. DA
    Dante Saenz Galicia hace 9 años

    Gracias por ponerte en mis zapatos, eres ejemplo de solidaridad con los que cruzan lo que tu ya cruzaste. 🙂

    1. EL
      El atareao hace 9 años

      Hola Dante Saenz Galicia,

      Muchas gracias por el comentario. Un saludo.

  9. SU
    superlativo hace 7 años

    Excelente herramienta y tutorial. No he encontrado la manera de excluir alguna carpeta que haya dentro de la carpeta elegida ¿se puede? Saludos

    1. EL
      El atareao hace 7 años

      Si,

      en el apartado de opciones extra, añades la opción, »
      –exclude ‘el-directorio-que-quieres-excluir’

      Saludos

      1. SU
        superlativo hace 7 años

        Excelente! Muchas gracias

  10. CO
    ColtJDM hace 7 años

    gracias por el tutorial, pero tengo una duda, estoy usando un servidor freenas. como los puedo conectar?

    1. EL
      El atareao hace 7 años

      Hola ColtJDM,
      ¿Que es lo que quieres hacer en concreto?
      Gracias.

Deja una respuesta

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