La situación es la siguiente: tenemos un servidor linux (raspbian) que realiza dos copias de seguridad mediante un script y cron, por un lado copia una carpeta con todo lo que tiene dentro (tamaño variable, con archivos y subcarpetas variables) y por otro hace una copia de todo el disco sobre el que está el sistema operativo en caliente, es decir, crea una imagen del disco sin extraerlo y tan solo parando los servicios indispensables.
¿La solución? Robocopy. Como define la wikipedia, Robust File Copy (Robocopy) es un comando de cmd (command-line) para replicar archivos introducido en Windows Vista y Windows Server 2008, algunas de sus características son:
Estos son los que yo he utilizado (en un archivo .bat)
robocopy \\ruta_de_red\carpeta E:\backup\carpeta /E /LOG:\\ruta_de_red\\www\logs\carpeta.log
El atributo /E copia el contenido de la carpeta en red hacia la ruta específicada, en este caso en el disco E:
Lo interesante de robocopy es que comparará el contenido de la carpeta origen con la carpeta destino y solo copiará aquello que haya variado desde que se realizó la operación anterior.
El atributo /LOG crea un archivo log con toda la información pertinente de la operación, en mi caso la guardo en una carpeta alojada en mi servidor web
robocopy \\ruta_de_red\carpeta\ E:\backup /MIR /LOG:\\ruta_de_red\\www\logs\carpeta.log
El atributo /MIR realiza una copia exacta de lo que se encuentra dentro de \carpeta\ (un espejo) y lo colocará dentro de la carpeta backups alojada en el disco E:.