Robocopy elimina los archivos omitidos en el destino al duplicar
Al intentar duplicar dos carpetas usando Robocopy, la opción / MIR hace que los archivos en el destino se eliminen cuando los archivos de origen están en uso. Específicamente, esto sucede cuando se realiza una copia de seguridad de mi carpeta de Outlook y los archivos * .pst están en uso.
El resultado es el siguiente:
-------------------------------------------------------------------------------
ROBOCOPY :: Robust File Copy for Windows
-------------------------------------------------------------------------------
Started : Tuesday, 18 August 2020 18:58:28
Source : P:\Outlook\
Dest : D:\_SyncFolderTest\To\Outlook\
Files : *.*
Options : *.* /BYTES /S /E /DCOPY:DA /COPY:DAT /PURGE /MIR /J /R:0 /W:30
------------------------------------------------------------------------------
23 P:\Outlook\
Newer 183116800 AVArchive_2018.pst
Newer 128009216 AVArchive_2019.pst
Newer 42427392 AVArchive_2020.pst
Newer 403801088 AVOutlook.pst
New File 131072 ~AVArchive_2018.pst.tmp
New File 131072 ~AVArchive_2019.pst.tmp
New File 131072 ~AVArchive_2020.pst.tmp
New File 131072 ~AVOutlook.pst.tmp
------------------------------------------------------------------------------
Total Copied Skipped Mismatch FAILED Extras
Dirs : 1 0 1 0 0 0
Files : 23 4 15 0 4 0
Bytes : 3545771008 524288 2787892224 0 757354496 0
Times : 0:00:00 0:00:00 0:00:00 0:00:00
Speed : 37449142 Bytes/sec.
Speed : 2142.857 MegaBytes/min.
Ended : Tuesday, 18 August 2020 18:58:28
Es correcto que AVOutlook.pst es más nuevo, pero no puede copiarlo, no genera un error y elimina la versión anterior en el archivo dest. Así que no solo no se hizo una copia de seguridad, sino que la copia de seguridad anterior ya no existe. El código de salida es la única pista de que algo salió mal: 8 = No se pudieron copiar algunos archivos o directorios.
Entiendo que el archivo antiguo dest debe eliminarse y reemplazarse para lograr una imagen reflejada, pero ¿por qué no hay error y por qué no reconocer que los archivos en la fuente y dest están relacionados? ¿Es esto una deficiencia en Robocopy o una decisión de diseño? ¿Existe una forma más segura?
Respuestas
¿Es esto una deficiencia en Robocopy o una decisión de diseño?
Es correcto que AVOutlook.pst es más nuevo, pero no puede copiarlo, no genera un error y elimina la versión anterior en el archivo dest.
Es una decisión de diseño y está documentada:
Robocopy no podrá copiar archivos bloqueados por otros usuarios o aplicaciones, por lo que limitar el número de reintentos con / R: 0 acelerará la copia al omitir los archivos en uso.
Fuente: "Copia robusta de archivos" de Robocopy - CMD de Windows - SS64.com
¿Existe una forma más segura?
Sí, use VSHADOW o DISKSHADOW:
El servicio Windows Volume Shadow Copy es el único subsistema de Windows que puede copiar archivos abiertos. Robocopy no utiliza el servicio Volume Shadow Copy, pero puede hacer una copia de seguridad de una sombra de volumen que ya se ha creado con VSHADOW o DISKSHADOW .
Fuente: "Copia robusta de archivos" de Robocopy - CMD de Windows - SS64.com
no genera un error
Lo hace, y eso también está documentado (Robocopy usa CÓDIGOS DE SALIDA):
= Nueva opción en Windows 8 y Windows 10
CÓDIGOS DE SALIDA DE Robocopy
Fuente: "Copia robusta de archivos" de Robocopy - CMD de Windows - SS64.com
Puede verificar estos códigos de salida y tomar las medidas adecuadas en sus archivos por lotes.