Robocopy (Robust File and Folder Copy) è un’utility Microsoft gratuita,inclusa in Vista ma anche scaricabile liberamente come parte del Windows Resource Kit è può essere utilizzata anche con XP.
Si tratta di un’evoluzione del comando XCOPY che presenta una miriade di opzioni, per copiare (ma non solo) files da una locazione ad un’altra.
È una utility semplice ma potente, basata su linea di comando ma è possibile dotarla di una interfaccia (GUI), anch’essa scaricabile liberamente: Spotlight
Pur non essendo lo strumento ’ideale per una vera e propria sincronia dati (perché effettua una copia dei dati tout-court, senza una preliminare operazione comparativa che eviterebbe operazioni superflue), è una scelta eccellente per creare backup completi o parziali, copiare o spostare files.
SINTASSI
ROBOCOPY cartella_origine cartella_di_destinazione [file(s)_da_copiare] [opzioni]
Nota: file(s)_da_copiare = una lista di files o una wildcard (esempio: .doc)
Opzioni relative alla cartella/file sorgenti
/S : Copia le sottocartelle
/E : Copia le sottocartelle, incluse quelle vuote
/COPY:flag[s] : (default è /COPY:DAT) Specifica cosa copiare (default è /COPY:DAT): D=Data, A=Attributes, T=Timestamps S=Sicurezza=NTFS ACLs, O=Info proprietario, U=aUditing info).
/SEC : Copia i files con SECurity (equivalente a /COPY:DATS)
/DCOPY:T : Copia il Timestamps Directory
/COPYALL : Copia tutte le info del file (equivalente a /COPY:DATSOU).
/NOCOPY : Copia di nessuna info (ustile con l’opzione /PURGE).
/A : Copia i soli file con l’attributo archivio.
/M : come /A, ma rimuove l’attributo archivio dal file origine.
/LEV:n : Copia solo gli n livelli superiori dell’albero delle directory.
/MAXAGE:n : Età massima dei file (in giorni) – Esclude i file più vecchi di n giorni (se n < 1900 allora n = numero di giorni altrimenti n = data nel formato YYYYMMDD).
/MINAGE:n : Età minima dei file (in giorni) – Esclude i file più recenti di n giorni (se n < 1900 allora n = numero di giorni altrimenti n = data nel formato YYYYMMDD).
Opzioni copia
/L : Nessuna copia, produce solo un elenco di files
/MOV : Sposta i files (li cancella dalla cartella origine dopo la copia).
/MOVE : Sposta files e cartelle (li cancella dalla cartella origine dopo la copia).
/Z : copia i files in restartable mode (“Restartable” significa che Robocopy scriverà un record di recovery all’interno dei file incompleti, in modo che se l’operazione viene interrotta, una esecuzione futura della utility possa riprendere il lavoro di copia dal punto in cui era stato interrotto –resume- anzichè ripetere daccapo l’intera operazione. Molto utile quando si copiano file di grosse dimensione, magari attraverso una rete).
/B : Copia i files in modalità Backup (autorizza Robocopy a sovrascrivere i permessi di file e cartelle).
/ZB : Copia i file utilizzando restartable mode; se si ottiene un errore di “accesso negato” allora usa la modalità Backup.
/R:n : Numero di tentativi in caso di errore – default è 1 milione.
/W:n : Intervallo di tempo in secondi tra i vari tentativi – di default 30 secondi.
/REG : Salva i parametri /R:n e /W:n impostazioni di default.
/TBD : Attende per nomi di condivisioni non ancora definiti (retry error 67).
Opzioni relative alla cartella/file destinazione
/A+:[RASHCNET] : Imposta gli attributi selezionati dei file di destinazione
/A-:[RASHCNET] : Rimuove gli attributi selezionati dei file di destinazione
Attributi File [RASHCNET]:
R – Read only
A – Archive
S – System
H – Hidden
C – Compressed
N – Not content indexed
E – Encrypted
T – Temporary
/FAT : Crea i file di destinazione con nomi nel formato 8.3 FAT (8 car. per il nome + 3 per l’estensione).
/CREATE : Crea la struttura delle cartelle.
/PURGE : Elimina dalla cartella destinazione i files e le cartelle che non sono più presenti nell’origine.
/MIR : Crea una copia esatta (mirror) di una cartella e delle sue sottocartelle – equivalente all’utilizzo delle opzioni /PURGE più /E.
Opzioni relative al logging (registrazione degli eventi)
/L : Nessuna copia, produce solo un elenco di files
/NP : No Progress – Non mostra la % di avanzamento dell’operazione.
/LOG:logfile : Scrive il log (elenco degli eventi) sul file logfile sovrascrivendo l’eventuale file logfile già presente.
/LOG+:logfile : Scrive il log sul file logfile aggiungendo l’output all’eventuale file logfile già presente.
/TS : Include il Time Stamp dei file nel log.
/FP : Include il percorso completo dei files nel.
/NS : Non registra nel log la dimensione dei files.
/NC : Non registra nel log la classe dei files.
/NFL : Non registra nel log il nome dei files.
/NDL : Non registra nel log il nome delle cartelle.
/TEE : Mostra l’output del log anche a video.
Opzioni per la modalità di copia ripetuta (per chi vuole utilizzare un’alternativa all’utilità di pianificazione)
/MON:n : Tiene traccia delle modifiche ai file origine e riesegue la copia quando si sono verificati più di n cambiamenti.
/MOT:m : Tiene traccia delle modifiche ai file origine e riesegue la copia quando sono trascorsi più di m minuti dal primo cambiamenti.
/RH:hhmm-hhmm : Orari in cui una nuova operazione di copia può essere ripetuta.
Opzioni valide solo con Vista
Attributi File
[RASHCNETO]
R – Read only
A – Archive
S – System
H – Hidden
C – Compressed
N – Not content indexed
E – Encrypted
T – Temporary
O – Offline
Note
Robocopy fallirà la copia di file bloccati perchè in uso da altri utenti o applicazioni; limitare il numero di tentativi di copia con l’opzione /R:0 velocizzerà le operazioni.
Robocopy accetta percorsi UNC (es.: \\MIOPC\Cartella o \\192.168.0.1\Cartella) con lunghezza anche superiore ai 256 caratteri.
Per eseguire Robocopy con un account utente senza diritti di amministrazione, occorre che l’utente sia abilitato alle operazioni di backup.
Per copiare le informazioni di sicurezza, sono richiesti anche i diritti di controllo, oltre che, ovviamente i diritti di accesso almeno in lettura ai files e le cartelle di origine.
Qui è disponibile un completo elenco di tutte le opzioni utilizzabili con Robocopy.
Alcuni esempi:
Per copiare i files .doc da un server ad un altro, evitando la copia dei file già presenti nella destinazione:
ROBOCOPY \\Server1\reports \\Server2\backup .doc /S
Per ottenere un elenco dei file nella cartella C:WORK la cui dimensione sia maggiore di 32 MBytes:
ROBOCOPY C:\work /MAX:33554432 /L
Spostare i file più vecchi di 14 giorni:
ROBOCOPY C:\work C:\destination /move /minage:14
Effettuare il Backup di un Server
Il seguente script copia i dati da FileServ1 a FileServ2.
Se si esegue regolarmente una sincronizzazione tra sorgente e destinazione, Robocopy cpiera soltanto quei files che hanno subito modifiche (si intende cambiamenti nel time stamp o nella dimensione)
@ECHO OFF
SETLOCAL
SET _source=\\FileServ1\e$\users
SET _dest=\\FileServ2\e$\BackupUsers
SET _what=/COPYALL /B /SEC /MIR
:: /COPYALL :: COPY ALL file info
:: /B :: copy files in Backup mode.
:: /SEC :: copy files with SECurity
:: /MIR :: MIRror a directory tree
SET _options=/R:0 /W:0 /LOG:MyLogfile.txt /NFL /NDL
:: /R:n :: number of Retries
:: /W:n :: Wait time between retries
:: /LOG :: Output log file
:: /NFL :: No file logging
:: /NDL :: No dir logging
ROBOCOPY %_source% %_dest% %_what% %_options%
Robocopy è quindi molto semplice da utilizzare.