close

Robocopia

Vai alla navigazione Vai alla ricerca

robocopy , o "Robust File Copy", è un comando di replica di directory , disponibile dalla riga di comando . Faceva parte del Windows Resource Kit ed è stato introdotto come funzionalità standard di Windows Vista e Windows Server 2008 .

Caratteristiche

Robocopy si distingue per le prestazioni migliori dei comandi inclusi in Windows (COPY e xcopy ) e inoltre:

  • Può tollerare interruzioni della rete e continuare a copiare da dove era stato interrotto (i file incompleti sono contrassegnati con la data 01/01/1980 e contengono un registro di ripristino in modo che Robocopy sappia dove continuare).
  • Puoi copiare correttamente attributi, informazioni sul proprietario, flussi di dati alternativi (ADS), informazioni di controllo e date predefinite, senza la necessità di ingombranti parametri di comando.
  • È possibile copiare l' ACL NTFS (aggiungendo il parametro /COPYALL /SEC) e affermare il "diritto di backup" (/B) di Windows NT in modo che un amministratore possa copiare un'intera directory, inclusi i file la cui lettura è negata a l'amministratore.
  • Persistenza per impostazione predefinita, con un numero programmabile di tentativi automatici se non è possibile accedere a un file.
  • Ha una modalità "mirror", che mantiene sincronizzata la struttura ad albero eliminando i file dalla destinazione, facoltativamente, se non sono più nell'origine.
  • Può copiare grandi quantità di file che l'utilità XCOPY non riuscirebbe a fare.
  • Ha un indicatore di avanzamento sulla riga di comando che viene continuamente aggiornato.
  • Puoi copiare file e cartelle con nomi lunghi superiori a 256 caratteri - fino a un massimo teorico di 32.000 - senza errori. [ 1 ]
  • Supporta la copia multi-thread (solo Windows 7). [ 2 ]

In particolare, Robocopy non può copiare file aperti in uso da altri utenti o applicazioni. La cosiddetta "modalità di backup" è un privilegio amministrativo che consente a Robocopy di ignorare le impostazioni dei permessi (in particolare, quelle nell'ACL NTFS ) per la missione di backup. Il sottosistema Copia Shadow del volume di Windows è l'unico in grado di copiare i file aperti mentre sono in uso. Robocopy non implementa l'accesso a questo servizio, riducendone l'utilità come utilità di backup per i volumi in uso. Tuttavia, puoi utilizzare le utilità VSHADOWo DISKSHADOW(incluse in Windows Server 2008 ) per creare uno snapshot di un volume di cui è possibile eseguire il backup utilizzando Robocopy.

Inoltre, in base alla progettazione, la versione originale di Robocopy non è in grado di replicare gli attributi di sicurezza dei file le cui autorizzazioni sono state modificate dopo la replica iniziale. [ 3 ] Questo comportamento è stato corretto nelle versioni Windows 2008 e Vista di Robocopy. Ciò significa che Robocopy non si comporta allo stesso modo tra piattaforme diverse. [ 4 ]

L'interfaccia

Sebbene Robocopy stesso sia uno strumento da riga di comando, Microsoft Technet ha anche fornito un'interfaccia, che richiede .net Framework 2.0. È stato sviluppato da Derk Benisch, ingegnere di sistema del gruppo MSN di Microsoft. [ 5 ] Questa interfaccia include la versione XP026 di Robocopy (per Vista).

Esempi di utilizzo

Copia il contenuto di una directory in modo ricorsivo, da c:\foo a c:\bar

robocopy C:\pippo C:\bar /E

Copia il contenuto di una directory in modo ricorsivo (/E) e copia tutte le informazioni dei file (/COPYALL, che equivale a /COPY:DATSOU, D=Data, A=Attributes, T=Date, S=Security=ACL di NTFS, O=Informazioni sul proprietario, U=Informazioni di controllo), nessun tentativo su file bloccati (/R:0). Si noti che le date della directory non verranno ripristinate se viene utilizzata una versione precedente a XP026:

robocopy C:\pippo C:\bar /COPYALL /E /R:0

Duplica foo to bar, eliminando tutti i file nella barra che non sono in foo (/MIR), copia i file in modalità riavviabile (/Z) in caso di perdita della connessione di rete

robocopy C:\pippo \\server di backup\bar /MIR /Z

Copia le cartelle, non i file

La sintassi di Robocopy è nettamente diversa da quella utilizzata dai normali comandi di copia, in quanto accetta solo nomi di cartelle, non file, sia sull'origine che sulla destinazione. I nomi di file e i caratteri jolly (come " *.* ") non sono accettati come origine o destinazione. I file possono essere selezionati o esclusi utilizzando gli argomenti del filtro, che possono fare riferimento solo a nomi di file relativi a cartelle già selezionate, poiché non vengono accettati percorsi completi.

Ad esempio, per copiare il file foo.txt dalla directory c:\bar a c:\baz , verrebbe utilizzata la seguente espressione

robocopy c:\bar c:\baz foo.txt

Elenco parziale dei parametri della riga di comando

L'elenco seguente riflette le opzioni della riga di comando più comuni per Robocopy [ 6 ]

Opzioni comuni

/MIR
Attiva la modalità mirror, eliminando qualsiasi file nella destinazione che non è più nella sorgente (equivalente a /E e /PURGE).
/Z
Copia i file in modalità avviabile. "Riavviabile" significa che Robocopy scriverà un record di ripristino nel file incompleto nel caso in cui l'operazione venga interrotta o interrotta, in modo che una futura esecuzione di Robocopy possa riprendere da dove era stata interrotta, invece di ricominciare dall'inizio. Ciò è utile per copie affidabili di file di grandi dimensioni o quantità su reti instabili come [Rete privata virtuale|VPN] o Internet. Un file incompleto ha le stesse dimensioni del file completo ed è datato in un periodo di 24 ore a partire dal 01/01/1980 alle 0:00.
/COPIA TUTTO
Verificare che sia stato eseguito il backup della sicurezza NTFS. Equivalente a /COPY:DATSOU, dove D=Dati, A=Attributi, T=Data, S=Sicurezza=NTFS ACL, O=Informazioni sul proprietario, U=Informazioni sull'audit.
/B
Apri il file in modalità backup. Consente di aprire file senza restrizioni di sicurezza, ma richiede diritti aggiuntivi in ​​origine e destinazione.
/ZB
Usa la modalità riavviabile; se l'accesso è negato, utilizzare la modalità di backup.

Opzioni specializzate

/S
Copia le sottodirectory se non sono vuote (come XCOPY).
/E
Copia le sottodirectory, anche se sono vuote (come XCOPY).
/M
Copia i file con l'attributo Archivio (come XCOPY con l'opzione /M).
/MOV
Sposta i file, eliminandoli dalla sorgente.
/MUOVERSI
Elimina file E cartelle (eliminali dalla fonte dopo la copia).
/LUN:n
Monitora e avvia la copia dopo n modifiche (e minuti MOT).
/MOT:n
Impostare l'intervallo di monitoraggio minimo (n minuti) prima di avviare un'altra copia.
/XA: attributi
Escludi i file con uno qualsiasi degli attributi specificati. Esempio: /XA:H non copierà i file con l'attributo nascosto.
/XF nome
Esclude i file indicati nel nome . I caratteri jolly sono accettati. Esempio: /XF *.bak non copierà alcun file con estensione *.bak.
/XD nome
Escludere le directory indicate nel nome da qualche parte nel percorso . Funziona con i caratteri jolly (ad es. /XD BKUP* non copierà le directory che iniziano con "BKUP", indipendentemente da dove si trovino nell'albero).
/XC
Esclude i file con modifiche .
/XN
Escludi nuovi file . _
/XO
Escludi i file meno recenti
/XX
Esclude file e directory extra , che possono essere nella destinazione, ma non nell'origine.
/XL
Escludere file e directory solitari ; Può essere all'origine, ma non a destinazione.
/SE
Includere i seguenti file.
/ES
Include gli stessi file .
/ELEMENTO
Include file ottimizzati (ad esempio se alcuni hanno attributi di file e altri di sola lettura).
/XJ
Escludi collegamenti simbolici ._ _ Quando si copiano gli account utente in un'altra posizione in Windows Vista, è importante escludere i collegamenti simbolici. Il collegamento in '\Users\...\AppData\local' denominato 'Application Data' punta al relativo collegamento principale, creando un loop che può causare l'arresto anomalo di Robocopy. Inoltre, se un collegamento punta a un disco di origine che viene copiato su un altro disco di destinazione utilizzando /MIR (o /E e /PURGE) e il collegamento viene copiato, punterà al disco di origine, il che potrebbe comportare il contenuto del disco di origine.
/R:n
Dice a Robocopy i tentativi 'n' prima di uscire con errore (1 milione per impostazione predefinita).
/IPG:n
Dice a Robocopy la pausa in 'n' millisecondi tra i pacchetti nel trasferimento di rete. Utile per preservare la larghezza di banda su connessioni lente.
/L
Simu L per fare la copia senza farlo, per testare il risultato di una configurazione da riga di comando.
/W:n
Tempo di attesa tra i tentativi (30 secondi per impostazione predefinita).
/EPURAZIONE
Elimina i file che non sono in origine.
/DST
Compensazione per le differenze di orario.
/DCOPIA:T
Copia le date delle directory. ### Disponibile in XP026 (WinXP) e XP027 e versioni successive (Vista)
/MAXAGE:n
Durata massima del file: esclude i file più vecchi di n giorni/data.
/MINAGE:n
Durata minima dei file: esclude i file con meno di n giorni/data.
(Se n < 1900 allora n = numero di giorni, altrimenti n = data AAAAMMGG ).
/MT:n
Copia multithread (solo Windows 7). Il valore di n varia da 1 a 128 (8 per impostazione predefinita)
/FFT
Assumere tempi file FAT (granularità data/ora di 2 secondi).

Opzioni di registrazione

/NFL
Non registrare i nomi dei file.
/NDL
Non registrare i nomi delle directory.
/NS
Non registrare le dimensioni dei file.
/NC
Non registrare classi di file.
/X
Elenca tutti i file extra.
/V
Estrarre informazioni dettagliate, con i file esclusi.
/TS
Includere le date dei file di origine.
/PF
Includi percorsi completi.
/NP
Non mostrare % copiato.
/ETA
Mostra l'orario di arrivo previsto.
/LOG:file.txt
Sostituisci file.txt con lo stato dell'attività.
/LOG+:file.txt
Aggiungi lo stato dell'attività a file.txt.
/TEE
Output nella finestra della console e nel file di registro.
/NJH
Nessuna intestazione dell'attività.
/NJS
Nessun riepilogo attività.

(Vedi elenco completo in [1] qui)

Problemi noti

Fino a XP026

  • La versione XP026 non restituisce codici ERRORLEVEL quando sono presenti directory/file aggiuntivi.
  • La nuova opzione in Vista (XP027) /EFSRAW: copia i file crittografati in modalità EFS RAW; non disponibile per XP (XP026).
  • Robocopy non copierà le date dalle cartelle di origine. Invece, utilizzerà la data corrente durante la creazione di nuovi. Se si desidera che entrambe le copie siano uguali, è necessario utilizzare un'altra soluzione di backup. Indirizzato nella versione XP026 e nella versione Vista (parametro /DCOPY:T)
  • Non copia in modo affidabile nomi di file brevi.
  • La copia dei file in modalità riavviabile è molto più lenta (circa 6 volte più lunga in rete) rispetto alla modalità normale o di backup a causa del necessario sovraccarico di amministrazione.
  • Sebbene la versione XP026 possa già copiare file compressi, si verifica molta frammentazione .
  • La modalità di backup non può sovrascrivere il rifiuto esplicito dell'autorizzazione ACL NTFS se la copia non è un oggetto di proprietà. (Messaggio di errore: ERROR 5 (0x00000005) Copia del backup NTFS nella directory di destinazione. Accesso negato.) Questo errore può essere risolto semplicemente copiando i dati con questa opzione impostando /COPY:DT invece dell'opzione /COPYALL

ErrorLevel codici di ritorno

Il codice di ritorno di Robocopy è una bitmap, come si può vedere in: [ 7 ]

  • 0×16 Errore grave. Robocopy non ha copiato nessun file. È dovuto a un errore di utilizzo oa diritti di accesso insufficienti all'origine o alla destinazione.
  • 0×08 Alcuni file o cartelle non sono stati copiati (si sono verificati errori di lettura ed è stato superato il limite di tentativi). Verifica la presenza di questi errori in un secondo momento.
  • 0×04 Sono state rilevate alcune mancate corrispondenze di file e nomi di file. Esaminare il registro di output. Probabilmente sarà necessaria l'amministrazione.
  • 0×02 Sono stati rilevati file/directory aggiuntivi. Esaminare il registro di output. Sarà necessaria la gestione.
  • 0×01 Uno o più file sono stati copiati correttamente (ovvero sono arrivati ​​nuovi file).
  • 0×00 Nessun errore, niente copiato. L'origine e la destinazione sono completamente sincronizzate.

È possibile utilizzare questi codici per l'utilizzo nei file batch, come segue:

if  errorlevel  16  echo ***FATAL ERROR*** &  goto  : eof 
if  errorlevel  8  echo **COPIA NON RIUSCITA** &  goto  : eof 
if  errorlevel  4  echo *MISCREPANCY* &  goto  : eof 
if  errorlevel  2  echo FILE EXTRA &  goto  : eof 
se livello di  errore  1  echo Copia riuscita e  vai a : eof  se livello di errore 0 echo –nessuna modifica– & vai a : eof
     

In alternativa, possono essere utilizzati anche per fornire informazioni più dettagliate:

if  errorlevel  16  echo ***FATAL ERROR*** &  goto  : eof 
if  errorlevel  15  echo FAIL MISM XTRA COPY &  goto  : eof 
se  errorlevel  14  echo FAIL MISM XTRA &  goto  : eof 
se  errorlevel  13  echo FAIL MISM COPY &  goto  : eof 
if  errorlevel  12  echo FAIL MISM &  goto  : eof 
if  errorlevel  11  echo FAIL XTRA COPY &  goto  : eof 
se  errorlevel  10  echo FAIL XTRA &  goto  : eof 
if  errorlevel  9  echo FAIL COPY &  goto  : eof 
se  errorlevel  8  echo FAIL &  goto  : eof 
if  errorlevel  7  echo MISM XTRA COPY &  goto  : eof 
if  errorlevel  6  echo MISM XTRA &  goto  : eof 
if  errorlevel  5  echo MISM COPY &  goto  : eof 
se  errorlevel  4  echo MISM &  goto  : eof 
se  errorlevel  3  echo XTRA COPY &  goto  : eof 
se livello di  errore  2  echo XTRA &  vai a  : eof 
se livello di  errore  1  echo COPIA &  vai a : eof  se livello di errore 0 echo –nessuna modifica– & vai a : eof
     

Versioni

Nota: varie versioni di Robocopy non visualizzano il numero di versione durante l'esecuzione di 'Robocopy /?' sulla riga di comando.

versione del prodotto versione del file Anno Fonte Altro
1.70 - 1997 Kit di risorse di Windows NT
1.71 4.0.1.71 1997 Kit di risorse di Windows NT
1.95 4.0.1.95 1999 Kit di risorse di Windows 2000
1.96 4.0.1.96 1999 Kit di risorse di Windows 2000 © 1995-1997
XP010 5.1.1.1010 2003 Kit di risorse di Windows 2003
XP026 5.1.2600.26 2005 Scaricato con Robocopy GUI v.3.1.2
XP027 5.1.10.1027 2008 In bundle con Windows Vista , Server 2008, Windows 7 © 1995-2004
6.1 6.1.7601 2009 KB2639043 © 2009
6.2 6.2.9200 2012 In bundle con Windows 8 © 2012
6.3 6.3.9600 2013 In bundle con Windows 8.1 © 2013
10.0 10.0.10240 2015 In bundle con Windows 10 © 2015

Vedi anche

Riferimenti (in inglese)

  1. ^ http://windowsitpro.com/Windows/Articles/ArticleID/44324/pg/2/2.html Archiviato il 5 novembre 2005 in Wayback Machine Domande frequenti su Robocopy XP010 Usa nuove potenti opzioni di switch.
  2. ^ "Esegui copie di file multithread con Robocopy in Windows 7" . 
  3. Compromesso Robocopy di Microsoft .
  4. Brutto bug in Robocopy: ignora la sicurezza a livello di file .
  5. ^ Joshua Hoffman (novembre 2006). "Utility Spotlight Robocopy GUI" (html) . Rivista TechNet (Microsoft Corporation e CMP Media, LLC) . Estratto il 17 luglio 2008 . 
  6. Robocopy.exe, Resource Kit di Microsoft Windows Server 2003, output della guida quando eseguito con /? interruttore della riga di comando. Aiuto completo con /? interruttore della riga di comando.
  7. "Codici di restituzione a livello di errore di Robocopy" . Archiviato dall'originale il 22 dicembre 2008 . Estratto il 4 luglio 2009 . 

Collegamenti esterni