Robocopy

Robocopy

Robocopy

robocopy, o "Robust File Copy" (Copia de Ficheros Resistente), es un comando de replicación de directorios, disponible desde la Línea de Comandos. Formaba parte del Kit de Recursos de Windows, y se presentó como una característica estándar de Windows Vista y Windows Server 2008.

Robocopy está diseñado para la duplicación fiable de directorios y árboles. Puede garantizar que todos los atributos NTFS y propiedades son copiados, e incluye código de reinicio adicional para conexiones de red sujetas a interrupciones.

Contenido

Características

Robocopy destaca por superar a los comandos incluídos en Windows COPY y xcopy, y además:

  • Puede tolerar cortes de red y continuar la copia por donde la había dejado (los ficheros incompletos se marcan con la fecha 01/01/1980 y contienen un registro de recuperación para que Robocopy sepa por dónde continuar).
  • Puede copiar correctamente atributos, información del propietario, flujos alternos de datos (ADS), información de auditoría y fechas por defecto, sin la necesidad de utilizar los engorrosos parámetros de los comandos.
  • Puede copiar la ACL de NTFS, (si se añade el parámetro /COPYALL), y hacer valer el "derecho de copia de seguridad" de Windows NT (/B) para que un administrador pueda copiar un directorio completo, incluyendo aquellos ficheros cuya lectura está denegada al administrador.
  • Persistencia por omisión, con un número programable de reintentos automáticos si no se puede acceder a un archivo.
  • Dispone de un modo "espejo", que mantiene la arborescencia sincronizada borrando archivos del destino, opcionalmente, si ya no están en el origen.
  • Puede copiar grandes cantidades de ficheros que harían que con la utilidad XCOPY no se consiguiera.
  • Tiene un indicador de progreso que la línea de comandos que se actualiza continuamente.
  • Puede copiar archivos y carpetas con nombres largos que superen los 256 caracteres - hasta un máximo teórico de 32.000 - sin errores.[1]
  • Soporta copiado multihilo (sólo en Windows 7).[2]

En particular, Robocopy no puede copiar archivos abiertos en uso por otros usuarios o aplicaciones. El presunto "modo respaldo" es un privilegio administrativo que permite a Robocopy invalidar configuraciones de permisos (en concreto, los de la ACL de NTFS) para la misión de realizar copias de seguridad. El subsistema de Windows Volume Shadow Copy es el único que puede copiar archivos abiertos mientras están en uso. Robocopy no implementa el acceso a este servicio, reduciendo su utilidad como utilidad de copia de seguridad de vólumenes en uso. Sin embargo, se pueden utilizar las utilidades VSHADOW o DISKSHADOW (incluidas en Windows Server 2008) para crear instantáneas de un volumen que se podrá respaldar usando Robocopy.

Por otra parte, por su diseño, la versión original de Robocopy no es capaz de replicar atributos de seguridad de archivos cuyos permisos hayan cambiado después de la replicación inicial.[3] Este comportamiento se corrigió en las versiones de Robocopy para Windows 2008 y Vista. Esto conlleva que Robocopy no se comporte igual entre distintas plataformas.[4]


La interfaz

Aunque Robocopy en sí es una herramienta de la línea de comandos, Microsoft Technet también ha suministrado una interfaz, que requiere .net Framework 2.0. Ha sido desarrollada por Derk Benisch, ingeniero de sistemas junto a grupo MSN de Microsoft.[5] Esta interfaz incluye la versión XP026 de Robocopy (para Vista).

Ejemplos de uso

Copiar el contenido de un directorio recursivamente, de c:\foo a c:\bar

 robocopy C:\foo C:\bar /E

Copiar el contenido de un directorio recursivamente (/E), y copiar toda la información de los ficheros (/COPYALL, que equivale a /COPY:DATSOU, D=Datos, A=Atributos, T=Fecha, S=Seguridad=ACL de NTFS, O=Información del propietario, U=Información de auditoría), sin reintentos sobre archivos bloqueados (/R:0). Nótese que las fechas de los directorios no se restablecerán si se usa una versión más antigua que la XP026:

 robocopy C:\foo C:\bar /COPYALL /E /R:0

Duplicar foo a bar, borrando cualquier fichero en bar que no esté en foo (/MIR), copiar archivos en modo reiniciable (/Z) en caso de que se pierda la conexión de red

 robocopy C:\foo \\backupserver\bar /MIR /Z

Copia carpetas, no archivos

La sintaxis de Robocopy es claramente distinta de los comandos de copia normales, por el hecho de que sólo acepta nombres de carpetas, no archivos, tanto en el origen como en el destino. Nombres de ficheros y comodines (como "*.*") no se aceptan en ningún caso. Los ficheros se pueden seleccionar o excluir usando argumentos de filtrado, que sólo podrán referirse a nombres relativos de las carpetas ya seleccionadas, y sin aceptar trayectorias completas.

Por ejemplo, para copiar el archivo foo.txt del directorio c:\bar a c:\baz, se usaría la siguiente expresión

 robocopy c:\bar c:\baz foo.txt

Lista parcial de parámetros de línea de comandos

La lista a continuación refleja las opciones de línea de comandos más comunes para Robocopy[6]

Opciones comunes

/MIR 
Activa el modo espejo, borrando cualquier fichero en destino que ya no esté en origen (equivale a /E y /PURGE).
/Z 
Copia archivos en modo reiniciable. "Reiniciable" hace mención a que Robocopy escribirá un registro de recuperación en el fichero incompleto en caso de que la operación se vea interrupida o abortada, para que una futura ejecución de Robocopy pueda continuar por donde ésta lo dejó, en lugar de comenzar otra vez desde el principio. Esto es útil para copias fiables de ficheros grandes o cantidades sobre redes inestables tales como [Red privada virtual|VPN] o Internet. Un fichero incompleto tiene el mismo tamaño que el fichero completo, y se le anota una fecha en un perido de 24 horas a partir del 01/01/1980 a las 0:00.
/COPYALL 
Comprueba que se ha copiado la seguridad NTFS. Equivale a /COPY:DATSOU, donde D=Datos, A=Atributos, T=Fecha, S=Seguridad=ACL de NTFS, O=Información del propietario, U=Información de auditoría.
/B 
Abre el fichero en modo backup (copia de seguridad). Permite abrir los ficheros sin restricciones de seguridad, pero requiere derechos adicionales en origen y destino.
/ZB 
Usar modo reiniciable; si se deniega el acceso, usar modo backup.

Opciones especializadas

/S 
Copia subdirectorios si no están vacíos (como XCOPY).
/E 
Copia subdirectorios, aunque estén vacíos (como XCOPY).
/M 
Copia ficheros con el atributo Archivo (como XCOPY con la opción /M ).
/MOV 
Mueve los archivos, borrándolos del origen.
/MOVE 
Borra ficheros Y carpetas (los borra del origen tras la copia).
/MON:n 
Monitoriza y lanza la copia tras n cambios (y MOT minutos).
/MOT:n 
Configura el intervalo mínimo de monitorización (n minutos) antes de lanzar otra copia.
/XA:atributos 
Excluye ficheros con cualquiero de los attributes dados. Ejemplo: /XA:H no copiará archivos con el atributo de oculto.
/XF nombre 
Excluye ficheros indicados en nombre. Se aceptan comodines. Ejemplo: /XF *.bak no copiará ningún archivo con la extensión *.bak.
/XD nombre 
Excluye directorios indicados en nombre en alguna parte de la ruta. Funciona con comodines (p.ej. /XD BKUP* no copiará directorios que empiecen por "BKUP", sin importar en qué parte del árbol se encuentren).
/XC 
Excluye ficheros con cambios .
/XN 
Excluye ficheros nuevos.
/XO 
Excluye ficheros más antiguos
/XX 
Excluye ficheros y directorios extra, que puede estar en destino, pero no en origen.
/XL 
Excluye ficheros y directorios solitarios; Puede estar en origen, pero no en destino.
/IS 
Incluye los mismos archivos.
/IT 
Incluye ficheros retocados (p. ej.: si unos tienen atributos de archivos y otros de sólo lectura).
/XJ 
Excluir enlaces simbólicos. Cuando se copian cuentas de usuario a otra ubicación en Windows Vista, es importante excluir los enlaces simbólicos. El enlace en '\Usuarios\...\AppData\local' denominada 'Application Data' apunta a su enlace superior, creando un bucle que puede hacer caer a Robocopy. Y aún mas, si un enlace apunta a un disco origen que se copia a otro disco destino usando /MIR (o /E y /PURGE) y se copia el enlace, éste apuntará al disco origen, que puede resultar en la modificación de los continidos del disco origen.
/R:n 
Le indica a Robocopy los 'n' reintentos antes de terminar con error (1 millón por omisión).
/IPG:n 
Le indica a Robocopy la pausa en 'n' milisegundos entre paquetes en transferencia en redes. Útil para preservar ancho de banda en conxiones lentas.
/L 
SimuLa la realización de la copia sin hacerla, para probar el resultado de una configuración desde la línea de comandos.
/W:n 
Tiempo de espera entre reintentos (30 seconds por omisión).
/PURGE 
Borra los archivos que no estén en origen.
/DST 
Compensación por diferencias horarias.
/DCOPY:T 
COPia Fechas de Directorios. ### Disponible en XP026 (WinXP) & XP027 y posterior (Vista)
/MAXAGE:n 
Vida MÁXima de los ficheros - excluye ficheros más antiguos que n días/fecha.
/MINAGE:n 
Vida MÍNima de los ficheros - excluye ficheros con menos de n días/fecha.
(Si n < 1900 entonces n = número días, si no n = fecha YYYYMMDD ).
/MT:n 
Copia multihilos (multithreaded) (sólo Windows 7 ). El valor de n alcanza de 1 a 128 (8 por omisión)

Opciones de registro

/NFL 
No registrar nombres de ficheros.
/NDL 
No registrar nombres de directorios.
/NS 
No registrar tamaños de ficheros.
/NC 
No registrar clases de ficheros.
/X 
Indicar todos los archivos extra.
/V 
Sacar información minuciosa, con los archivos excluidos.
/TS 
Incluir las fechas de los archivos de origen.
/FP 
Incluir trayectorias completas.
/NP 
No mostrar % copiado.
/ETA 
Mostrar hora estimada de llegada.
/LOG:fichero.txt 
Reemplazar fichero.txt con el estado de la tarea.
/LOG+:fichero.txt 
Añadir el estado de la tarea a fichero.txt.
/TEE 
Salida a la ventana de consola, así como el archivo de registro.
/NJH 
Sin cabecera de la tarea.
/NJS 
Sin resumen de tareas.

(Ver lista completa en [1] aquí)

Problemas conocidos

Hasta XP026

  • La versión XP026 no devuelve los códigos ERRORLEVEL cuando existen directorios/ficheros extra.
  • La nueva opción en Vista (XP027) /EFSRAW : Copiar archivos cifrados en modo EFS RAW; no está disponible para XP (XP026).
  • Robocopy no copiará las fechas de las carpetas de origen. En su lugar, usará la fecha actual al crear las nuevas. Si se desea que ambas copias sean iguales, se tiene que usar otra solución de copia de seguridad. Se ha tratado en la versión XP026 y la versión de Vista (parámetro /DCOPY:T)
  • No copia de manera fiable nombres cortos de ficheros.
  • La copia de ficheros en modo reiniciable es mucho más lenta (alrededor de 6 veces más en red) que en modo normal o de respaldo por la necesaria sobrecarga de administración.
  • Aunque la versión XP026 ya puede copiar archivos comprimidos ocurre una gran fragmentación.
  • El modo Backup no puede invalidar la denegación explícita de permisos ACL de NTFS si el que copia no es un objeto del propietario. (Mensaje de error: ERROR 5 (0x00000005) Copiando seguridad NTFS al directorio de destino. Acceso denegado.) Se puede superar este error con sólo copiar los datos con esta configuración de opciones /COPY:DTen lugar de la opción /COPYALL
  • Robocopy no preserva los [Enlace duro|enlaces duros]
  • Robocopy no puede copiar a través de enlaces FTP.

Códigos de retorno ErrorLevel

El código de retorno de Robocopy es un mapa de bits, como se puede observar en:[7]

  • 0×10 Error grave. Robocopy no copió nigún fichero. Se debe a un error de utilización o derechos de acceso insuficientes en origen o destino.
  • 0×08 Algunos archivos o carpetas no se han copiado (Hubo errores de lectura y se rebasó el límite de reintentos). Comprobar estos errores más adelante.
  • 0×04 Se han detectado algunas discrepancias en los nombres de archivos y ficheros. Examinar el registro de salida. Probablemente hará falta administración.
  • 0×02 Se han detectado archivos / directorios extra. Examinar el registro de salida. Hará falta administración.
  • 0×01 Se han copiado uno o más ficheros con éxito (o sea, han llegado nuevos ficheros).
  • 0×00 Ningún error, no se ha copiado nada. Origen y destino están completamente sincronizados.

Se puede usar estos códigos para su utilización en fichero por lotes, de la sigueiente manera:

if errorlevel 16 echo ***ERROR FATAL*** & goto end
if errorlevel 8 echo **COPIAS FALLIDAS** & goto end
if errorlevel 4 echo *DISCREPANCIAS* & goto end
if errorlevel 2 echo FICHEROS EXTRA & goto end
if errorlevel 1 echo Copia correcta & goto end
if errorlevel 0 echo –sin cambios– & goto end
:end

De forma alternativa, también se pueden usar para dar información más detallada:

if errorlevel 16 echo ***ERROR FATAL*** & goto end
if errorlevel 15 echo FAIL MISM XTRA COPY & goto end
if errorlevel 14 echo FAIL MISM XTRA & goto end
if errorlevel 13 echo FAIL MISM COPY & goto end
if errorlevel 12 echo FAIL MISM & goto end
if errorlevel 11 echo FAIL XTRA COPY & goto end
if errorlevel 10 echo FAIL XTRA & goto end
if errorlevel 9 echo FAIL COPY & goto end
if errorlevel 8 echo FAIL & goto end
if errorlevel 7 echo MISM XTRA COPY & goto end
if errorlevel 6 echo MISM XTRA & goto end
if errorlevel 5 echo MISM COPY & goto end
if errorlevel 4 echo MISM & goto end
if errorlevel 3 echo XTRA COPY & goto end
if errorlevel 2 echo XTRA & goto end
if errorlevel 1 echo COPY & goto end
if errorlevel 0 echo –sin cambios– & goto end
:end

Versiones

  • XP010 - Incluida en el Kit de Recursos de Windows 2003
  • XP026 - En descarga con Robocopy GUI
  • XP027 - Incluida con Windows Vista
  • XP028 - Incluida con Windows Vista SP1 y Windows Server 2008

Véase también

Referencias (en inglés)

  1. http://windowsitpro.com/Windows/Articles/ArticleID/44324/pg/2/2.html Robocopy XP010 FAQ Wield powerful new switch options.
  2. http://technet.microsoft.com/en-us/magazine/dd542631.aspx
  3. Microsoft's Robocopy compromise.
  4. Ugly bug in Robocopy - ignoring security on file level.
  5. Joshua Hoffman. «Utility Spotlight Robocopy GUI» (html), TechNet Magazine, Microsoft Corporation and CMP Media, LLC, November, 2006. Consultado el 2008-07-17.
  6. Robocopy.exe, Microsoft Windows Server 2003 Resource Kit, help output when run with /? command line switch. Complete help with /??? command line switch.
  7. Robocopy Errorlevel Return Codes

Enlaces externos

Obtenido de "Robocopy"

Wikimedia foundation. 2010.

Игры ⚽ Нужен реферат?

Mira otros diccionarios:

  • Robocopy — robocopy, or Robust File Copy , is a command line directory replication command. It was available as part of the Windows Resource Kit, and introduced as a standard feature of Windows Vista and Windows Server 2008.Robocopy is designed for reliable …   Wikipedia

  • robocopy — Разработчик Microsoft Операционная система Windows NT, Windows 2000, Windows XP, Windows 2003, Windows Vista,Windows 7, Windows Server 2008. Последняя версия XP028 Лицензия Проприетарное про …   Википедия

  • Robocopy — Разработчик Microsoft ОС Windows NT, Windows 2000, Windows XP, Windows 2003, Windows Vista,Windows 7, Windows Server 2008. Лицензия Proprietary robo …   Википедия

  • XCOPY — In computing, Xcopy is command used for copying multiple files or entire directory trees from one directory to another and for copying files across a network. Xcopy stands for extended copy , [cite web… …   Wikipedia

  • Comparison of Continuous Integration Software — Contents 1 About Continuous Integration Software 2 Comparison 3 See also 4 References About Continuous Integra …   Wikipedia

  • Windows Explorer — This article is about the Windows file system browser. For the similarly named web browser, see Internet Explorer Windows Explorer A component of Microsoft Windows Details Included with Microsoft Windows …   Wikipedia

  • DOSKey — is a utility for MS DOS and Microsoft Windows that adds command history, macro functionality, and improved editing features to the command line interpreters COMMAND.COM and cmd.exe. It was included as a TSR program with MS DOS and PC DOS versions …   Wikipedia

  • Command Prompt — For other uses, see Command prompt (disambiguation). CMD redirects here. For other uses, see CMD (disambiguation). Command Prompt A component of Microsoft Windows …   Wikipedia

  • Windows Installer — This article is about the Microsoft Windows component. For the installation of the operating system itself, see Windows Setup. Windows Installer Default window (after running msiexec.exe) Original author(s) Microsoft …   Wikipedia

  • MS-DOS Editor — The MS DOS Editor interface Developer(s) Microsoft Corporation Initial release June 1991 …   Wikipedia

Compartir el artículo y extractos

Link directo
Do a right-click on the link above
and select “Copy Link”