¿Cómo utilizar Robocopy en Windows?

¿Cómo utilizar Robocopy en Windows?

Robocopy, llamado así de forma abreviada y cuyo nombre completo es Robust File Copy, es una aplicación de línea de comandos para Windows cuya función es la de replicar datos. Hoy vamos a explicar fácilmente como utilizar Robocopy para replicar estructuras de directorios y archivos en modo “pro”.

La herramienta Robocopy posee la misma función que otros comandos familiares como copy o xcopy, aunque la diferencia radica en que no es un simple copiador de archivos, sino que fue diseñado para copiar carpetas y mantenerlas igual a como estaban.

Mediante el uso de Robust Copy podemos copiar un simple directorio o copiar de manera recursiva un directorio y todos los subdirectorios que contiene. Es una utilidad de copia de archivos avanzada y que puede resultar tan compleja como queramos que sea.

Ventajas de usar Robust File Copy

Una de sus principales virtudes es que permite recuperar automáticamente el progreso de una transferencia de archivos tras haberse producido una desconexión de red o error. También destaca por permitirnos la “copia selectiva” de objetos en base a si son nuevos o han sido actualizados a partir de una fecha. Así, Robocopy nos permite mantener copias idénticas de una estructura de disco tanto en el mismo equipo como en otras ubicaciones de red.

Otro aspecto positivo de la herramienta es que, si un archivo a copiar existe en dos ubicaciones (origen y destino), por defecto Robust File Copy copiará el archivo solamente si ambas versiones de archivo son diferentes en tamaño y fecha de modificación. Así ahorramos tiempo si lo estamos utilizando en una infraestructura con bajo rendimiento o con uso de datos limitado.

Finalmente, podemos especificar si las copias se reiniciarán en caso de producirse un fallo y esto también nos ahorra tiempo cuando la conectividad de red se pierde por algún motivo. Cuando la herramienta termina de trabajar nos mostrará un informe de resultados, que podremos configurar además para que se grabe en un archivo de LOG.

Disponibilidad de la herramienta

Robocopy está incluído en todos los sistemas operativos recientes de Microsoft, desde Windows Vista y Windows 7 en adelante, con soporte por supuesto para Windows Server (donde más se utiliza en un principio).

Como utilizar Robocopy

A continuación voy a describir algunos de los comandos útiles para las operaciones más típicas que podríamos necesitar hacer en nuestro equipo o servidor Windows. Básicamente, empezaremos por indicar siempre la letra de unidad y ruta de origen seguida de la letra de unidad (o dirección IP) y ruta destino, seguido o antecedido de las opciones que correspondan.

He creado una unidad con la letra E: a modo de ejemplo donde se irán guardando las copias de seguridad que le digamos desde la unidad C:\. Tened en cuenta que la ayuda del comando Robocopy estará disponible escribiendo rocopy /? en el CMD.

backups-de-robocopy

Veamos algunos ejemplos:

Como copiar el contenido de una carpeta dentro de otra

robocopy c:\Users\AlejandroW7\Documents E:\backups\documents

Siempre veremos por defecto un informe de resultado similar al siguiente, donde se especifica la fecha, unidades origen/destino y opciones utilizadas.

informe-de-copia-de-robocopy

Copiar un directorio

C:\>robocopy c:\Users\AlejandroW7\Documents\nuevacarpeta E:\backups\documents\nuevacarpeta

Copiar un subdirectorio

Si antes hemos escrito el comando sin parámetros, ahora escribiremos el prefijo /S para indicar que tome todos los subdirectorios al copiar:

C:\>robocopy /S c:\Users\AlejandroW7\Documents E:\backups\documents

Copiar el contenido de una carpeta a otra incluyendo directorios vacíos

C:\>robocopy c:\Users\AlejandroW7\Documents E:\backups\documents /E

Copiar archivos con un tamaño mayor al especificado

C:\>robocopy c:\Users\AlejandroW7\Documents E:\backups\documents /min:2048

El comando anterior copiará archivos desde c:\Users\AlejandroW7\Documents cuyo tamaño sea superior a 2048 bytes (2 Kb).

Copiar archivos con un tamaño menor al especificado

C:\>robocopy c:\Users\AlejandroW7\Documents E:\backups\documents /max:8192

El comando anterior copiará aquellos archivos cuyo tamaño no exceda los 8 Kb.

Realizar un espejo de una carpeta con Robocopy
C:\>robocopy c:\Users\AlejandroW7\ E:\backups\documents /MIR

Dicho comando realizará un espejo o copia exacta de lo que encuentre dentro de c:\Users\AlejandroW7 y lo colocará dentro de E:\backups\documents. El uso de este comando implica indirectamente utilizar el comando PURGE que eliminará de la operación aquellos archivos que no existan en la carpeta esperada.

IMPORTANTE: cuidado al usar el modificador /MIR pues podría eliminar archivos en el orígen que quizá no te interese perder.

Copiar desde la red

Si quieres utilizar Robocopy para copiar archivos desde un servidor de tu red deberás escribir un comando como sigue:

C:\>robocopy \\SERVIDOR\backups E:\backups

Todos los archivos existentes en la carpeta backups del equipo remoto (donde servidor es el nombre del equipo o su IP) se copiarán dentro del directorio E:\backups

Copiar un árbol de directorios

robocopy c:\Users\AlejandroW7\Documents E:\backups\documents /MIR /dcopy:T

Lo que haremos con dicho comando es copiar un árbol de directorios junto con las propiedades de fecha de todos los elementos.

Borrar el directorio origen al finalizar

robocopy c:\Users\AlejandroW7\Documents E:\backups\documents /mov /s

Mover archivos según la antigüedad que tengan

robocopy c:\Users\AlejandroW7\Documents E:\backups\documents /move /minage:30

Con estas propiedades moveremos únicamente aquellos archivos con más de 30 días de antigüedad.

Copiar archivos sin sobreescribir ninguno

En ocasiones nos interesará mantener diferentes copias de archivos con el mismo nombre y podemos hacerlo fácilmente con este método:

robocopy c:\Users\AlejandroW7\Documents E:\backups\documents /E /XC /XN /XO
  • /E realiza copias recursivas de los subdirectorios encontrados
  • /XC Excluye archivos con la misma marca temporal (fecha) pero con diferentes tamaños. Normalmente Robocopy sobre-escribe este tipo de archivos.
  • /XN Excluye los archivos existentes más recientes que las copias que están en el destino.
  • /XO Excluye archivos existentes que son más antiguos que las copias en destino. Robocopy normalmente los sobre-escribe.

Ocultar la salida de Robocopy

Si no queremos ver datos estadísticos o informativos, tenemos los siguientes apéndices:

  • /NFL: No file list. No se incluirán nombres de archivo en el log.
  • /NDL: No directory list. No se incluirán nombres de directorios.
  • /NJH: No job header. No se mostrará la cabecera.
  • /NJS: NO job summary. No se mostrará el total de archivos, errores o coincidencias.

Mostrar la salida de robocopy en un archivo

robocopy c:\Users\AlejandroW7\Documents E:\backups\documents /LOG:e\backups\log.txt

Es interesante si queremos crear archivos con los resultados para mantener un control a lo largo del tiempo.

  • /LOG:archivo : Salida a un archivo LOG (sobreescribe lo existente).
  • /LOG+:archivo : Salida a un archivo LOG (añade datos a log existente).

Si queremos una salida UNICODE para el archivo de registro, basta con poner:

  • /UNILOG+:archivo

Utilizar Robocopy Multi-Threaded Mode

Con el comando que veremos a continuación ganaremos rendimiento -dependerá de si es un sistema remoto/local así como de la composición de los directorios- haciendo un copiado “multi-hilo”.

robocopy c:\Users\AlejandroW7\Documents E:\backups\documents /MT:20 /V /ETA /LOG:e\backups\log.txt
  • /MT[:n] significa copia multi-hilo con n= número de hilos/procesos a utilizar (entre 1 y 128) siendo por defecto 8 el valor usado si no especificamos uno en el comando.

Además, en este caso recomiendo utilizar el modo Verbose (/V) y la información sobre tiempo restante de forma opcional (/ETA).

Espero que os sirva de ayuda el artículo y no me despediré sin antes dejaros un enlace a la excelente web SS64 donde encontraréis más ejemplos de uso de RoboCopy.

Deja tu comentario

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s