Robocopia
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
- Robocopy non conserva i collegamenti fisici .
- Robocopy non può copiare su collegamenti FTP.
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
- DUE
- XCOPIA
- Prompt MS-DOS
- sincronizzare
- sincronizzare il giocattolo
Riferimenti (in inglese)
- ^ 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.
- ^ "Esegui copie di file multithread con Robocopy in Windows 7" .
- ↑ Compromesso Robocopy di Microsoft .
- ↑ Brutto bug in Robocopy: ignora la sicurezza a livello di file .
- ^ Joshua Hoffman (novembre 2006). "Utility Spotlight Robocopy GUI" (html) . Rivista TechNet (Microsoft Corporation e CMP Media, LLC) . Estratto il 17 luglio 2008 .
- ↑ 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.
- ↑ "Codici di restituzione a livello di errore di Robocopy" . Archiviato dall'originale il 22 dicembre 2008 . Estratto il 4 luglio 2009 .