2014-09-19 21:03:44 +0000 2014-09-19 21:03:44 +0000
32
32

Comando ROBOCOPY para hacer una copia de seguridad incremental

Estoy abrumado por la documentación de ROBOCOPY. Quiero hacer una copia de seguridad incremental de mis archivos locales a la unidad de red (M). Quiero que se ejecute lo más rápido posible, sin archivo de registro y con el menor texto posible en la pantalla. Mis archivos están todos dentro de una carpeta (MyFolder) que tiene muchas subcarpetas anidadas. Por “incremental” quiero decir “sólo copiar lo que es nuevo o ha cambiado”. No quiero borrar ningún archivo histórico en el destino, pero si he cambiado un archivo sólo quiero la versión más nueva. Y si no he cambiado un archivo, entonces no quiero copiarlo sobre el archivo existente respaldado. ¿Es correcto lo siguiente? (Ejecutando Win7 Enterprise.)

robocopy C:\MyFolder M:\MyFolder /z /np /xo /e

Por favor, ninguna sugerencia de nada más que robocopy. No puedo instalar nada. Y no me importan las cosas de seguridad. Tengo gente para eso (quiera o no). ;-)

Respuestas (2)

43
43
43
2014-10-26 14:25:57 +0000

Llevo unos años utilizando con éxito una variante del siguiente script:

robocopy C:\source M:\destination /MIR /FFT /R:3 /W:10 /Z /NP /NDL

Parámetros explicados

  • La opción /MIR (equivalente a /E /PURGE) significa “espejo” y es la más importante. Considera su carpeta de origen como la “maestra”, haciendo que robocopy copie/refleje cualquier cambio en el origen (nuevos archivos, eliminaciones, etc.) al destino, lo cual es una configuración útil para una copia de seguridad.

  • /FFT es una opción muy importante, ya que permite una diferencia de 2 segundos al comparar las marcas de tiempo de los archivos, de manera que las pequeñas diferencias de reloj entre su ordenador y su dispositivo de copia de seguridad no importan. Esto asegurará que sólo se copien los archivos modificados, incluso si los tiempos de modificación de los archivos no están exactamente sincronizados.

  • /R:3 especifica el número de reintentos, si la conexión falla, y /W:10 especifica un tiempo de espera de 10 segundos entre reintentos. Estas opciones son útiles cuando se realiza la copia de seguridad a través de una red.

  • /Z copia los archivos en “modo reinicio”, de modo que los archivos parcialmente copiados pueden continuar después de una interrupción.

  • /NP y /NDL suprimen parte de la salida de depuración, puede añadir adicionalmente /NS, /NC, /NFL para reducir aún más la cantidad de salida (vea la documentación para más detalles). Sin embargo, yo sugeriría imprimir alguna salida de depuración durante las primeras ejecuciones, para asegurarse de que todo está funcionando como se espera.

Parámetros útiles adicionales mencionados por otros usuarios

  • /XJD excluye “puntos de unión” para directorios, enlaces simbólicos que podrían causar problemas como bucles infinitos durante la copia de seguridad. Vea los comentarios de Brian para más detalles.

  • /MT[:N] utiliza multithreading y puede acelerar las transferencias de muchos archivos pequeños. Para N, un valor de 2-4 veces el número de núcleos debería servir en una máquina normal. Comentado por Zoredache en la pregunta original.

Edición en respuesta al comentario de Granger:

Si realmente quieres mantener los archivos que existen en el destino, pero no en el lado de origen, simplemente sustituye la opción /MIR por /E. Sin embargo, le sugiero encarecidamente que utilice /MIR cuando quiera utilizar el destino para realizar copias de seguridad incrementales. De lo contrario, cualquier archivo que haya sido renombrado o movido en el origen desordenará el destino, lo que significa que obtendrá duplicados. Yo suelo crear una subcarpeta “backup” en el destino que contiene una copia 1:1 de mi árbol de carpetas de origen. De este modo, puedes mantener los archivos históricos junto a la carpeta de copia de seguridad y eliminarlos o reorganizarlos de forma segura más adelante.

8
8
8
2015-01-20 18:58:26 +0000

Me gusta usar lo siguiente:

robocopy "C:\Users\<user>" "F:\robocopy\<user>" /XJD /R:0 /XA:SH /E /ZB /XO /XD "Downloads" "AppData" /LOG:robocopy.log /TEE

Lo ejecuto como Administrador para que el modo de copia de seguridad (opción /b) pueda hacer copia de los archivos en uso.

Otras opciones no relacionadas con la naturaleza incremental de la copia de seguridad son:

/XD para excluir directorios de la copia de seguridad.

/XJD para excluir puntos de unión (“Mi Música”).

/R:0 para establecer en 0 el reintento en los intentos fallidos.

/XA:SH para omitir los archivos ocultos y del sistema.

Para eliminar toda la información de registro posible, añada las siguientes opciones /NP /NS /NDL /NFL /NC.