«

»

Feb 06

ROBOCOPY error 5 Changing File Attributes

robocopy_errorOggi vediamo alcuni errori classici che possono capitare nell’uso di ROBOCOPY per la sincronizzazione di files tra una macchina Windows ed un Nas Linux o comunque una macchina di destinazione che non usi NTFS come file system.

Niente che non si possa rimediare con qualche switch aggiuntivo al nostro programma di sincronizzazione preferito !

Il primo effetto strano che può capitare è la copia sempre di tutti i files dalla sorgente (Windows) alla destinazione (Linux) anche quando questi non sono stati modificati (ricordiamo che uno dei vantaggi di ROBOCOPY è proprio la copia selettiva solo di quei files che sono stati modificati dall’ultima sincronizzazione).
Questo effetto è dovuto al differente time-stamp usato dal sistema operativo per identificare l’ultima data ed ora di modifica dei files (informazione che il programma usa per capire se il file deve essere copiato nella destinazione o no durante la copia incrementale).

Mentre le macchine Windows usano normalmente NTFS come file system che ha un time-stamp molto preciso, sui server Nas (di solito basati su Linux) il file system è Ext2/Ext3/Xfs o altro ed usa un time-stamp meno preciso, questa differenza temporale “inganna” ROBOCOPY che pensa di avere sempre dei files nuovi nella sorgente rispetto alla destinazione e quindi li copia sempre tutti, il flag per risolvere questo problema e’ :

/FFT

Un altro errore che potrebbe capitarvi nella console di esecuzione di ROBOCOPY è il seguente :

“ERROR 5 (0x00000005) Changing File Attributes … Access is denied”

questo errore è dovuto al fatto che di default il programma cerca di copiare sulla destinazione anche gli attributi NTFS legati al file sorgente che sono incompatibili col differente file system della destinazione, anche qui per risolvere la cosa basta aggiungere questo flag nel comando :

/COPY:DT

che in pratica istruisce ROBOCOPY in modo che copi solo i dati del file e il time-stamp dello stesso ignorando gli attributi (non preoccupatevi la vostra copia sarà comunque fedele all’originale !).

 

Del comando ROBOCOPY e del suo uso avevamo già parlato in passato in questo nostro articolo :

https://www.trickit.it/windows/sincronizzare-files-e-directories-con-robocopy

alla luce di questi nuovi flag diciamo quindi che un comando base per sincronizzare una cartella Windows NTFS con uno share che si trova su un Nas Linux sarà :

c:\percorso\robocopy.exe  c:\sorgente\  \\nas\share_dest\  /mir  /r:0  /XA:SH  /FFT  /XJ  /COPY:DT

 

2 commenti

  1. Hunter

    Perfetto. Hi risolto il mio problema di copia, grazie.

    Siccome mi piace comprende la soluzione, però, non ho chiaro l’effetto dei seguenti parametri:

    /XA:SH : con SH che tipi di file verranno esclusi in copia ?

    /XJ : esclude i junction points … di che si tratta ??

    GRAZIE ANCORA.

    1. mario

      Il parametro /XA:SH dice a robocopy di ignorare i files nascosti e di sistema, es. il pagefile o simili, la documentazione completa sui parametri usabili con robocopy la trovi qui :

      https://technet.microsoft.com/en-us/library/cc733145%28WS.10%29.aspx

      oppure anche digitando da riga di comando ROBOCOPY /?

      I junctions points sono dei riferimenti simbolici a directory reali, in pratica dei collegamenti non esistenti fisicamente sul disco ma che puntano ad altri percorsi, vengono usati da Vista in poi per simulare la presenza di directory che non esistono più, esempio C:\Documents and settings\ , per maggiori info :

      https://msdn.microsoft.com/it-it/library/windows/desktop/bb968829%28v=vs.85%29.aspx

      ciao

Rispondi a Hunter Annulla risposta

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>