Robocopy elimina los archivos omitidos en el destino al duplicar

Aug 19 2020

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

2 DavidPostill Aug 19 2020 at 00:38

¿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.