Robocopy supprime les fichiers ignorés dans la destination lors de la mise en miroir

Aug 19 2020

Lorsque vous essayez de mettre en miroir deux dossiers à l'aide de Robocopy, l'option / MIR entraîne la suppression des fichiers de la destination lorsque les fichiers source sont en cours d'utilisation. Plus précisément, cela se produit lors de la sauvegarde de mon dossier Outlook et des fichiers * .pst en cours d'utilisation.

La sortie est la suivante:

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

Il est exact que AVOutlook.pst est plus récent, mais ne peut pas le copier, ne génère pas d'erreur et supprime l'ancienne version du fichier dest. Ainsi, non seulement il n'a pas été sauvegardé, mais la sauvegarde précédente a maintenant disparu. Le code de sortie est le seul indice que quelque chose s'est mal passé: 8 = Certains fichiers ou répertoires n'ont pas pu être copiés.

Je comprends en quelque sorte que l'ancien fichier de destination doit être supprimé et remplacé pour obtenir une image miroir, mais pourquoi aucune erreur, et pourquoi ne pas reconnaître que les fichiers de la source et de la destination sont liés? Est-ce une lacune de Robocopy ou une décision de conception? Y a-t-il un moyen plus sûr?

Réponses

2 DavidPostill Aug 19 2020 at 00:38

Est-ce une lacune de Robocopy ou une décision de conception?

Il est exact que AVOutlook.pst est plus récent, mais ne peut pas le copier, ne génère pas d'erreur et supprime l'ancienne version du fichier dest.

Il s'agit d'une décision de conception et est documentée:

Robocopy ne parviendra pas à copier les fichiers verrouillés par d'autres utilisateurs ou applications, donc limiter le nombre de tentatives avec / R: 0 accélérera la copie en ignorant les fichiers en cours d'utilisation.

Source: Robocopy "Copie de fichiers robuste" - Windows CMD - SS64.com

Y a-t-il un moyen plus sûr?

Oui, utilisez VSHADOW ou DISKSHADOW:

Le service de cliché instantané de volume Windows est le seul sous-système Windows capable de copier les fichiers ouverts. Robocopy n'utilise pas le service de cliché instantané de volume, mais il peut sauvegarder une ombre de volume qui a déjà été créée avec VSHADOW ou DISKSHADOW .

Source: Robocopy "Copie de fichiers robuste" - Windows CMD - SS64.com

ne soulève pas d'erreur

C'est le cas, et cela est également documenté (Robocopy utilise des CODES DE SORTIE):

= Nouvelle option dans Windows 8 et Windows 10

CODES DE SORTIE Robocopy

Source: Robocopy "Copie de fichiers robuste" - Windows CMD - SS64.com

Vous pouvez vérifier ces codes de sortie et prendre les mesures appropriées dans vos fichiers de commandes.