Comando ROBOCOPY para hacer una copia de seguridad incremental

31

Estoy abrumado por la documentación de ROBOCOPY. Quiero hacer una copia de seguridad incremental de mis archivos locales en 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 en algún lugar dentro de una carpeta (MyFolder) que tiene muchas subcarpetas anidadas. Por "incremental" quiero decir "solo copie lo que es nuevo o cambiado". No quiero eliminar ningún archivo histórico en el destino, pero si he cambiado un archivo, solo quiero la versión más nueva. Y si no he cambiado un archivo, entonces no quiero copiarlo sobre el archivo de copia de seguridad existente. ¿A continuación es correcto? (Ejecutando Win7 Enterprise.)

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

Por favor, no hay sugerencias para nada más que robocopy. No tengo permitido instalar nada. Y no me importan las cosas de seguridad. Tengo gente para eso (los quiera o no). ;-)

dmm
fuente
1
Necesita una opción / s o / e para copiar subdirectorios.
David Marshall
@DavidMarshall: ¡Uy! En realidad lo sabía. Adicional. Entonces, ¿estoy bien ahora?
dmm
Sí. He estado usando algo similar.
David Marshall
Probándolo ahora. Todavía hay un montón de cosas que se escriben en la pantalla. ¿Cómo me deshago de él en futuras carreras?
dmm
3
Una opción que puede marcar una gran diferencia en cuanto al rendimiento es tener transferencias multiproceso. /MT[:N] Tengo una CPU de 4 núcleos, por lo que generalmente uso algo en la rabia 8-16 para mi número de subprocesos. Calculo 2-4 hilos por núcleo. Sin duda, debe probar con diferentes valores en su hardware. Multithreaded es de gran ayuda cuando tiene muchos archivos pequeños. Si tiene una pequeña cantidad de archivos grandes, no ayudará tanto.
Zoredache

Respuestas:

40

He estado usando con éxito una variante del siguiente script durante algunos años:

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

Parámetros explicados

  • La /MIRopción (equivalente a /E /PURGE) significa "espejo" y es la opción más importante. Considera su carpeta de origen como el "maestro", lo que hace que sobrescriba cualquier cambio en el lado de destino, que es una configuración útil para una copia de seguridad.

  • /FFTes una opción muy importante, ya que permite una diferencia de 2 segundos al comparar marcas de tiempo de archivos, de modo que las pequeñas diferencias de reloj entre su computadora y su dispositivo de respaldo no importan. Esto garantizará que solo se copien los archivos modificados, incluso si los tiempos de modificación de los archivos no están sincronizados exactamente.

  • /R:3especifica el número de reintentos, si la conexión falla, y /W:10especifica un tiempo de espera de 10 segundos entre reintentos. Estas son opciones útiles al hacer la copia de seguridad en una red.

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

  • /NPy /NDLsuprimir algunas salida de depuración, se puede añadir, además /NS, /NC, /NFLpara reducir aún más la cantidad de producción (véase la documentación para más detalles). Sin embargo, sugeriría imprimir algunos resultados de depuración durante las primeras ejecuciones, para asegurarse de que todo funcione como se esperaba.

Parámetros útiles adicionales mencionados por otros usuarios

  • /XJDexcluye "puntos de unión" para directorios, enlaces simbólicos que pueden causar problemas como bucles infinitos durante la copia de seguridad. Vea los comentarios de Brian para más detalles.

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

Edite en respuesta al comentario de Granger:

Si realmente desea conservar los archivos que existen en el destino, pero no en el lado de origen, simplemente reemplace la /MIRopción con /E. Sin embargo, sugeriría utilizarlo /MIRcuando desee utilizar el destino para copias de seguridad incrementales. De lo contrario, cualquier archivo que haya sido renombrado o movido en la fuente desordenará el destino, lo que significa que obtendrá duplicados. Por lo general, creo una subcarpeta "copia de seguridad" en el destino que contiene una copia 1: 1 de mi árbol de carpetas de origen. De esa manera, aún puede guardar archivos históricos al lado de la carpeta de copia de seguridad y eliminarlos o reorganizarlos de manera segura más adelante.

Pederpansen
fuente
¿Este comando permite copiar archivos con permisos? robocopy C: \ source M: \ destination / MIR / FFT / R: 3 / W: 10 / Z / NP / NDL
Shabeer Sher
44
Excepto / MIR (/ PURGE) eliminará los archivos en el destino que ya no existen en la fuente. La pregunta formulada indicaba explícitamente que no era deseada.
Granger
@Shabeer No, Robocopy por defecto solo copia datos (D), atributos (A) y marcas de tiempo (T). Otros valores deben especificarse con el parámetro "/ copy: <valor>", por ejemplo, "/ copy: DATS" para incluir los permisos de ACL. Pero dado que copio en un NAS basado en Linux, eso no tiene mucho sentido para mí.
pederpansen
1
@Brian Gracias por la pista. Nunca he tenido problemas con los puntos de unión, pero supongo que no hará daño evitarlos por si acaso. Lo agregué en mi respuesta.
pederpansen
1
@pederpansen: tiende a suceder al copiar carpetas de usuario (o copiar una unidad completa). Por lo general, la carpeta de datos de la aplicación es la culpable, ya que tiene un punto de unión por razones de compatibilidad de aplicaciones. Intente ejecutar "cd C: \ Users \ [USERFOLDER] \ AppData \ Local \ Application Data \ application data \ application data \" desde un símbolo del sistema si desea ver una ruta infinita de muestra. Esto funciona incluso en Windows 10.
Brian
8

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

Ejecuto esto como administrador para que el modo de copia de seguridad ( /bopción) pueda hacer una 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 establecer reintento en intentos fallidos a 0.

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

Para eliminar tanta información de registro como sea posible, agregue las siguientes opciones /NP /NS /NDL /NFL /NC.

Vince
fuente