Robust File Copy, es un comando que sirve para replicar archivos y directorios, que se encuentra disponible desde la linea de comandos. Viene integrado en los S.O. Windows xp, vista, seven, server 2003 y server 2008. Viene incluido en el kit de recursos de windows.
Suena simple y asi es… pero, que diferencia tiene al comando COPY? o XCOPY?.. miremos las caracteristicas destacadas.
– 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).
Robocopy tiene una enorme variedad de opciones para moldearlo a nuestro gusto, las podemos observar digitando en la consola de comando un simple robocopy /?
Para no hacer tan extenso este post y para no estar replicando tanta información, si requieren saber más de las opciones (ya que no les basta el comando de ayuda) puede acceder a Wikipedia
Y ahora vamos a la acción mostrando ejemplos:
Un ejemplo sencillo es si deseamos copiar la información de un directorio de nuestra maquina seria por ejemplo de la siguiente manera.
robocopy c:\documentos d:\backup /E /COPYALL /ZB /LOG:ficherto.txt
Con el comando anterior se hace una copia de documento a la carpeta de backup. Lo hace de manera recursiva (/E), copia toda la información del archivo (/COPYALL), usa el modo reiniciable, es decir, si el fichero no se copia crea un estado para volver a iniciar la copia y si no logra copiar asi, lo hace de manera de backup (/ZB). Además crea un log en la carpeta donde se encuentra en el momento, llamado fichero.txt.
Ahora un ejemplo un poco más avanzado, con el cual “sufrí” un poco. El caso es el siguiente, tengo un servidor en linux el cual funciona como servidor de archivos por medio de samba, el servidor requiere contraseña para cualquier acción, necesito hacer la copia con robocopy en un servidor dedicado unicamente a backups. Y además un requerimiento es crear una carpeta con el día que se realice el backup. El problema era que al intentar hacer el backup, no tenia permisos para acceder al servidor, lo que toco hacer fue autenticarme por consola antes de realizar el backup.
La solución que cree fue un .bat con la siguiente información.
cd \BACKUP
MKDIR %date:/=-%
net use \\192.168.0.100\doc /u:usuario contraseña
robocopy \\192.168.0.100\doc C:\BACKUP\%date:/=-%\ /E /ZB /ETA /V /FP /R:0 /W:0 /LOG:logbackup.txt
net use \\192.168.0.100\doc /D
pause
Lo que hago con este .bat es lo siguiente. Primero accedo a la carpeta donde realizare el backup en mi disco C:\. Luego creo una carpeta que utilice como nombre la información de fecha que tiene el sistema operativo. Lo siguiente es autenticarme en mi servidor de archivos por medio de net use. Después ejecuto el comando robocopy de manera que acceda al servidor de archivos y haga la copia en la carpeta que se creo con los datos de la fecha, lo hace de manera recursiva y reiniciable, que muestre hora estimada para hacer la copia (/ETA), que saque información detallada con los archivos excluidos (/V), que realice 0 intentos por si falla y con 0 segundos de espera por si falla (/R:0 /W:0) y que cree un log con el nombre logbackup.txt. Por ultimo finalizo la sesión en el servidor y listo.
Esta solución sirve para sostentar el problema de autenticación, ya que robocopy no trae ninguna solución para ello.
Cualquier inquietud no dude en pedir ayuda, para eso estamos.
Un placer y como siempre. Saludos…
Fuente: Wikipedia
Un poco de experiencia.