Cómo sincronizar carpetas en Mac

por:

Un problema al que podemos tener que enfrentarnos es la sincronización de carpetas, ya sean locales o remotas.

Para solucionar esto, en Mac OS X podemos aprovecharnos de una magnífica herramienta llamada automator, que nos permite crear ejecutables a partir de sencillos scripts.

A esta solución llegué cuando necesitaba mantener sincronizada cierta carpeta de mi disco duro con dropbox, y no encontraba la opción en el cliente de dropbox de seleccionar una carpeta de mi equipo para mantener sincronizada.

En mi caso se trata de la sincronización de la carpeta de mi disco duro externo en la que tengo todos los datos de la universidad (apuntes, ejercicios, trabajos, etc) que sería una pena perder por un fallo de disco.

Para ello creé dos programas, uno que al ejecutarlo “manda” para dropbox los cambios en la carpeta del disco duro, y otro que al ser ejecutado “importa” los cambios de dropbox al disco duro.

El segundo programa es ideal para cuando he estado trabajando en el portátil o en algún pc de la facultad, y quiero tener los datos de vuelta en mi pc de escritorio.

Creando el script para sincronizar los datos

1 Para comenzar lanzamos el programa “Automator”

2 Seleccionamos Flujo de trabajo

Creando un script para sincronizar

3 En el cuadro de búsqueda situado al lado de la palabra Variables escribimos Shell.

4 Seleccionamos “Ejecutar el script shell”

automator2

5 Configuramos el programa, desplegando las opciones situadas a la derecha, diciéndole al programa que pase los datos de entrada como argumentos.

automator3

6 Desplegamos las Opciones, y marcamos “Ignorar datos de entrada de esta acción”

automator4

7 Ya estamos listos para escribir nuestro programa. Vamos a utilizar el comando rsync de UNIX para realizar la función. Lo primero es calcular las rutas de las carpetas a sincronizar.

Para ello podemos utilizar la terminal, y arrastrar las carpetas para saber su ruta.

automator5

automator6

8 Una vez que ya tenemos las rutas, vamos a utilizar nuestro programa. Utilizaremos las opciones -aE –delete de rsync para, resumiendo, tener una copia idéntica de la carpeta origen en la carpeta destino. La primera ruta que pasamos es la de la carpeta de origen, y la segunda la de destino.

El comando a escribir es el siguiente en mi caso:

automator7

rsync -aE –delete /Volumes/HGA1TB/Datos\ de\ Hector/Documentos/Carrera/ “/Users/ hectorgoan/Dropbox/Carrera/”

9 Solo nos queda guardar el programa, y ya estará listo para que lo guardemos donde queramos, y lo ejecutemos cuando queramos que se realice la sincronización.

También es posible añadir el programa a la lista de programas que se ejecutan al inicio del sistema, pero yo he preferido no hacer esto para así llevar un mayor control de cuando se sincronizan los datos.

Nota: Marcar el formato de archivo como Aplicación. Aún así podremos abrirlo a posteriori con Automator para realizar modificaciones en el mismo.

automator8

Nota2: Para realizar el programa que sincroniza de Dropbox al disco duro, bastaría con cambiar el orden de los argumentos.

 

El autor de esta entrada es nuestro colaborador Héctor Gonzalo Andrés

4 comentarios en “Cómo sincronizar carpetas en Mac”

  1. Rodolfo Mery Spaczil

    Estimado Hector, lo que no entiendo es el beneficio, ya que al hacer lo que indicas mas arriba, igual estas pasando por el Disco Duro interno, ya que ahí tienes la carpeta Dropbox, es decir, copias del disco duro Externo a la carpeta Dropbox del HDD interno y esta es la que se sincroniza con Dropbox en la nube. Lo que veo es que estas sincronizando el HDD interno con el HDD externo. Lo entretenido seria sincronizar el HDD externo con Dropbox y que cuando lo desconectes no te borre toda la info en la nube.

    Responder
    • hectorgoan

      Hola Rodolfo, no entiendo muy bien a qué te refieres con tu comentario.
      En este artículo explico como hacer un programita con automator para sincronizar carpetas utilizando por debajo el comando rsync de UNIX.
      Con el ejemplo mostrado lo que hago es sincronizar los cambios realizados en el disco duro externo con la carpeta de Dropbox y ésta utilizará sus propios mecanismos para sincronizar con la nube (ahí no entro, ya que no es de lo que trata el tutorial).
      Si lo que quieres es sincronizar tu carpeta de Dropbox con una en el disco duro externo, bastaría con que modificaras los argumentos que se pasan a rsyncr a tu gusto.
      Yo en mi caso tengo ambas versiones, HD->Dropbox y Dropbox->HD y utilizo uno u otro según donde haya realizado los cambios.
      Está claro que sería más óptimo autodetectar cambios y fechas de última modificación y sincronizar una u otra carpeta dependiendo de ello, para eso, tendrías que elaborar más el script bash, pero esto no es lo que viene a explicar este tutorial.
      Un saludo.

      Responder
      • Rodolfo Mery Spaczil

        Estimado Hector, agradezco tu respuesta y tienes toda la razón, cuando me di cuenta de esto (que fue a los 5 o 10 minutos de escribirlo) eliminé mi comentario, pero veo que no lo hizo. Solo para explicar mi problema es que despues que sincroniza el disco duro externo con Dropbox y lo desconectas, comienza a eliminar toda la informacion en la Nube. Me comunique con Dropbox, y me confirman que por ahora es asi.

        Saludos y gracias nuevamente.

        Responder
    • hectorgoan

      Hola de nuevo Rodolfo.
      Si lo que quieres es subir los cambios directamente a Dropbox sin utilizar su mecanismo de sincronización vía la carpeta Dropbox en finder, tendrías que utilizar la API de esta empresa.
      Un profesor me comentó recientemente que se había publicado la API, pero repito, este no es el fin del tutorial.
      Un saludo.

      Responder

Deja una Respuesta