Su consultor TI

Conozca su infraestructura, mejore lo que necesite

Sincronizar Dropbox, SkyDrive y Google drive entre ellos o con carpetas locales y NAS con Synctoy.

Creo que, actualmente, es probable muchos de vosotros uséis como yo, más de un servicio de almacenamiento en la nube como los que he comentado u otros como Box.com.

Para mi es realmente interesante que todos ellos estén sincronizados a modo de copia de seguridad o incluso poder tener una copia en un NAS. Más vale prevenir que curar.

Hasta ahora, yo lo hacía de forma semiautomática con un script de ROBOCOPY, la magnífica utilidad de Microsoft para copiar mover o sincronizar ficheros, pero me resultaba un tanto tosca, aunque efectiva al 100%.

Buscando por ahí, encontré muchas teorías sobre como realizar este proceso mediante enlaces simbólicos a las carpetas (no funciona, por lo menos a mi…) o incluso copiando las carpetas de Google drive y Dropbox dentro de SkyDrive, algo así como un archivador dentro de otro. He probado esta última solución a medias, sincronizando solo con unos cuantos ficheros y la verdad es que funciona, pero se me antoja muy arriesgado hacerlo con varios gigabytes de información y miles de documentos importantes de los que dependo.

Hace ya algún tiempo que descubrí la utilidad para sincronizar ficheros de Microsoft, llamada Synctoy, pero no me convenció cuando la probé entonces. Por otras necesidades probé la versión actual hace poco y creo que ha mejorado bastante, siendo casi ideal para sincronizar carpetas entre diversos dispositivos o servicios en la nube por su simplicidad y robustez.

La única pega que le veo actualmente es que todavía no se instala como servicio ni monitoriza los cabios como ocurre con Dropbox o SkyDrive, hay que ejecutarla manualmente o incorporar una tarea programada para ello, como es mi caso, pero por lo demás es tremendamente robusta y rápida, como ROBOOPY, y ofrece un interfaz muy sencillo de usar con las opciones básicas pero suficientes.

Paso a detallaros como funciona para que no tengáis que instalarla si no os parece adecuada a vuestras necesidades.

Una vez instalada, ofrece una pantalla con un asistente muy sencillo para añadir nuestra primera sincronización:

Pantalla inicial Synctoy

Hay que pulsar el botón “Create new folder pair”. Esto ya nos da una idea de como funciona Synctoy, enlazando pares de carpetas para mantenerlas sincronizadas. Podremos añadir tantos pares de carpetas como queramos. En mi caso por ejemplo, Dropbox → SkyDrive, Dropbox → Google drive y por último Dropbox → NAS.

Nos mostrará la sencilla pantalla donde seleccionaremos las dos carpetas, siendo la “origen” la que el llama “left” y la “destino” la que llama “right”:

Carpetas a sincronizar

Aparte de seleccionar carpetas locales, podemos introducir rutas en formato UNC del tipo \\Mi_servidor\mi_carpeta_de_red.

A continuación nos da tres simples opciones para sincronizar entre las dos carpetas:

  1. Synchronize: esta opción mantiene las dos carpetas totalmente sincronizadas, lo que se pone, modifica o quita de cualquiera de las dos carpetas se actualiza en la otra, por lo que no hay realmente una carpeta origen y otra destino.
  2. Echo: en este caso la carpeta origen se sincroniza con la destino pero no al revés, es decir todo lo que actualicemos, borremos o copiemos en el origen se pasará el destino pero lo que hagamos en destino no se pasará a origen y, eventualmente, se actualizará con el origen.
  3. Contribute: similar a Echo, salvo porque no se borra ningún fichero en del destino aunque desaparezca en el origen. Hay que estar atento a que si en origen cambiamos el nombre a un fichero, en destino también se cambiará, desapareciendo el que tenía el nombre inicial, no se mantendrán las dos versiones del fichero.

Tipo de sincronización de SyncToy

Tras esto volveremos a la pantalla inicial, donde ya podremos ejecutar directamente la sincronización o mejor, revisar las opciones extra que no nos han sido mostradas por el asistente. Si nos fijamos en la pantalla principal:

Opciones extra de Synctoy

Seleccionando la primera opción, denominada “Change action…”, nos volverá a mostrar el diálogo donde seleccionar el tipo de sincronización que deseamos, y en la segunda opción, nos mostrará un nuevo diálogo con más opciones:

Opciones extra

El primer campo “Files to include” sirve para especificar los ficheros que deseamos incluir con la típica nomenclatura que se usa para seleccionar ficheros desde línea de comandos. Por defecto hay un * para que todos se sincronicen. Podemos incluir varios criterios de selección separados por punto y coma (*.doc; *.xls; img_*.jpg …etc.).

El segundo campo “Files to exclude” es para todo lo contrario, nos permite colocar un filtro similar pero para excluir ficheros que no deseemos incluir, por ejemplo “*.bak; *.dmp; *.zip; *.rar”.

La tercera opción “Select subfolder” nos mostrará toda la estructura de directorios para que podamos marcar los que deseamos sincronizar, si no son todos.

Por último, tenemos tres opciones más que seleccionar:

  1. Active for run all: esta opción hace referencia a los usuarios de Windows que tienen permiso para ejecutar la tarea. Es conveniente dejarla marcada, sobre todo, si vamos a programar una tarea que se ejecute periódicamente y no lo vamos a ejecutar “a mano” desde nuestra sesión.
  2. Save overwritten files in the Reclycle Bin: Aunque por defecto está marcada, creo muy conveniente desactivarla puesto que si no, todos los ficheros que se borren se enviarán a la papelera de reciclaje, lo  que puede llevarnos a un gasto en disco bastante alto según con que tipo de ficheros trabajemos o el volumen de cambios que tengamos.
  3. Check file contents: por defecto, la utilidad detecta que un fichero ha cambiado entre el origen y el destino fijándose en el tamaño y la fecha. Si marcamos esta opción hará una comparación estricta del contenido de los ficheros, lo que puede durar una eternidad si se trata de ficheros grandes o si tenemos que copiarlos a través de la red.

Por último, podemos, desde la pantalla inicial, ejecutar una pre visualización de la sincronización pulsando el botón “Preview”.

Previsualización de una sincronización

Solo quedaría, en el caso de que deseéis ejecutarlo de forma desatendida, crear una tarea desde el “Programador de tareas”, situado dentro de Inicio → Accesorios → Herramientas del sistema → Programador de tareas.

Una vez en el programador, podéis crear una tarea seleccionando, de la columna de la derecha, una de estas opciones:

  1. Crear tarea básica: como su nombre indica, simplifica la creación de la tarea a lo básico.
  2. Crear tarea: da mucha más flexibilidad y es la que yo uso, puesto que es la única que permite ejecutarla a intervalos de tiempo.

Si elegimos “Crear tarea”, nos parecerá una primera pantalla donde tendremos que darle nombre y, de forma muy recomendable, marcar las dos opciones que se muestran en la imagen:

Crear tarea

La primera opción “Ejecutar tanto si el usuario…” nos permitirá que la tarea se ejecute simplemente con que el equipo esté encendido, sin necesidad de que hayamos iniciado sesión. Esto es básico en el caso de instalarlo en un servidor, en el que un usuario rara vez permanece con la sesión iniciada salvo para tareas de administración.

La segunda opción “Ejecutar con los privilegios más altos” la marcaremos si tenemos algún tipo de problema a la hora de que se ejecute la tarea o si algunos ficheros o carpetas no se sincronizan.

Tras esta pantalla, pasaremos a la pestaña “Desencadenadores” y especificaremos la programación con la que lo ejecutaremos. Podemos especificar muchos eventos para desencadenar la ejecución, pero lo normal es especificar uno solo pinchando en el botón “Nuevo“:

Nuevo desencadenador

Aparecerá un nuevo diálogo como este:

Datos de la programación

Deberemos especificar aquí la programación que deseemos, pero si deseáis que se ejecute de forma transparente cada cierto tiempo, deberéis fijaros en los parámetros que indico con flechas rojas. Su significado es bastante evidente.

Por último, en la pestaña “Acciones” especificaremos que es lo que vamos a realizar, en nuestro caso “Iniciar un programa”, como se puede observar en la imagen:

Script a ejecutar

Simplemente hay que tener claro que para ejecutarlo desde línea de comandos o como tarea programada, no debemos ejecutar el fichero “SyncToy.exe” sino “SyncToyCmd.exe”, que es su versión de línea de comandos.

Aparte de eso, como parámetro le pasaremos “-R” para que se ejecute la sincronización de todos los pares de carpetas o, en caso de querer ejecutar solo uno, “-R nombre_par_a_sincronizar”.

Espero que os sea útil a alguno.

 

1 Comentario

Nuevo comentario

Deja un comentario

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


*

Su consultor TI © 2014 Frontier Theme