David Bohm

Hay dos frases que definen mi manera de pensar:
Realmente no hemos prestado mucha atención al pensamiento como un proceso; hemos participado en pensamientos, pero sólo hemos prestado atención al contenido, no al proceso.
La capacidad de percibir o pensar de manera diferente es más importante que el conocimiento adquirido.
Ambas son de David Bohm.

sábado, 8 de octubre de 2016

Robocopy, ese amigo inseparable que lo copia casi todo

En Windows y de cara tanto a realizar volcado de datos entre unidades, servidores como incluso para copias de seguridad de nuestros archivos en el equipo, la herramienta que tenemos a mano y podemos sacarle partido es Robocopy.

Tiene una pega, y es que no realiza copias de archivos que estén en uso, es decir, archivos abiertos, pero si lo hacemos en una ventana de tiempo apropiada, es muy muy útil. Veamos algunos de los modificadores mas útiles y como quedaría el comando finalmente:

/MIR hace un espejeado y establece el origen como maestro, cualquier cambio en origen hace que se reproduzca en destino. Es la opción más importante para las copias incrementales. Se suele proponer usar encarecidamente /MIR para copias incrementales, pero en el caso en el que quieras mantener en destino archivos que ya no existen en origen, hay que sustituir /MIR por /E. Si usamos esta opción, archivos que hayan sido renombrados o movidos en origen generaran duplicados en destino. Se suele proponer crear una subcarpeta llamada backup en destino que contenga una copia 1:1 del árbol de carpetas de origen. De esta forma se puede todavía mantener archivos históricos junto a la carpeta backup y eliminar o reorganizarlos con seguridad más adelante.

/FFT es una opción muy importante, ya que permite una diferencia de 2 segundos al comparar las marcas de tiempo de archivos, que no importen las diferencias de reloj menores entre tu ordenador y el dispositivo de copia de seguridad. Esto asegurará que se copian sólo los archivos modificados, aunque los tiempos de modificación de archivo no estén sincronizados.

Estas son las primordiales, en cuanto a opciones adicionales que podemos usar son, por ejemplo:

/R:3 especifica el número de reintentos, en este caso tres, Si fallara la conexión,  /W:10 especifica un tiempo de espera de 10 segundos entre reintentos. Estas son opciones útiles al hacer la copia de seguridad en una red.

/LOG para mi tener un .log final que consultar es vital. La información que consultamos es muy poca, miramos la cabecera para ver la hora de ejecución y el final del documento para ver el resumen y si hay carpetas o archivos que no han sido copiados, errores, etc. Merece la pena. Tenemos que especificar la ruta y el nombre del fichero log, como por ejemplo /LOG:C:\copia.log

El fichero puede ser de extension .log o .txt como lo deseemos, lo va a realizar en formato totalmente plano. /LOG:C:\log.txt

/NP y /NDL suprime algunas de las salidas que se muestran en el log, además se puede Agregar /NS /NC,  /NFL que reducen aún más la cantidad de salida. Sin embargo, se sugiere siempre grabar cierta depuración de salida durante las primeras ejecuciones, para asegurarse de que todo está funcionando como se esperaba.
      /NP - No Progress: No muestra el % copiado
      /NDL -  No Directory List: No muestra nombres de directorios
      /NS - No Size: No muestra tamaño de archivos
      /NC - No Class: No muestra las clases de archivos
      /NFL - No File List: No muestra nombres de archivos

Bien, con todo esto, podríamos construir un comando bastante efectivo tal que así:

robocopy C:\origen G:\destino /MIR /FFT /R:3 /W:10 /Z /NP /NDL /LOG:C:\Copia.log

Donde C:\origen y G:\destino, obviamente, deben sustituirse por la ruta de la carpeta que queremos copiar de nuestro equipo, por ejemplo, y el destino al que deseemos realizar la copia de seguridad. Lo mismo haremos con C:\Copia.log, lo personalicemos para especificar la ruta y el nombre del archivo log.

Como siempre en estos asuntos, para gustos colores y se pueden aplicar variantes y otros parámetros que cada cual considere mas eficientes o vitales. Yo para un primer acercamiento, creo que estos son los mas interesantes.

Además, este comando se puede agregar a un script .bat y lanzarlo, o bien como tarea programada, o dentro del menú inicio para que se ejecute cuando el usuario inicia sesión en windows, por poner un ejemplo.

SaluDOS.