Robocopy elimina i file ignorati nella destinazione durante il mirroring

Aug 19 2020

Quando si tenta di eseguire il mirroring di due cartelle utilizzando Robocopy, l'opzione / MIR fa sì che i file nella destinazione vengano eliminati quando i file di origine sono in uso. In particolare, ciò accade quando si esegue il backup della cartella di Outlook e sono in uso i file * .pst.

L'output è il seguente:

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

È corretto che AVOutlook.pst è più recente, ma non può copiarlo, non genera un errore ed elimina la versione precedente nella destinazione. Quindi non solo non è stato eseguito il backup, ma il backup precedente è ora andato. Il codice di uscita è l'unico indizio che qualcosa è andato storto: 8 = Alcuni file o directory non possono essere copiati.

Capisco che il vecchio file dest deve essere rimosso e sostituito per ottenere un'immagine speculare, ma perché nessun errore e perché non riconoscere che i file nel sorgente e nella destinazione sono correlati? È una lacuna in Robocopy o una decisione progettuale? C'è un modo più sicuro?

Risposte

2 DavidPostill Aug 19 2020 at 00:38

È una lacuna in Robocopy o una decisione progettuale?

È corretto che AVOutlook.pst è più recente, ma non può copiarlo, non genera un errore ed elimina la versione precedente nella destinazione.

È una decisione progettuale ed è documentata:

Robocopy non riuscirà a copiare i file bloccati da altri utenti o applicazioni, quindi limitare il numero di tentativi con / R: 0 velocizzerà la copia saltando i file in uso.

Fonte: Robocopy "Robust File Copy" - Windows CMD - SS64.com

C'è un modo più sicuro?

Sì, usa VSHADOW o DISKSHADOW:

Il servizio Copia Shadow del volume di Windows è l'unico sottosistema di Windows in grado di copiare i file aperti. Robocopy non utilizza il servizio Copia Shadow del volume, ma può eseguire il backup di uno shadow del volume che è già stato creato con VSHADOW o DISKSHADOW .

Fonte: Robocopy "Robust File Copy" - Windows CMD - SS64.com

non solleva un errore

Lo fa, e anche questo è documentato (Robocopy utilizza i CODICI DI USCITA):

= Nuova opzione in Windows 8 e Windows 10

CODICI DI USCITA Robocopy

Fonte: Robocopy "Robust File Copy" - Windows CMD - SS64.com

È possibile controllare questi codici di uscita e intraprendere l'azione appropriata nei file batch.