Il backup è diventato fondamentale per le aziende. Dalla piccola-media impresa, fino alla grande multinazionale, nessuno può permettersi di perdere qualche dato dovuto alla mancanza di una politica di backup.
Un primo strumento, utile e potente, si chiama Robocopy.
Potremmo quasi definirlo come un rsync su windows; si occupa di mantenere sincronizzata una directory sorgente con la destinazione.
Avrete già capito il limite: il versioning. Infatti, utilizzando robocopy come una semplice copia, avremo i nostri dati al sicuro, ma solo gli ultimi; a meno di realizzare diversi script, con diverse cartelle di destinazione (ad esempio, una diversa per ogni giorno della settimana), non avremo la possibilità di recuperare un file se abbiamo apportato delle modifiche accidentali.
Ad ogni modo, possiamo analizzare più nel dettaglio questo strumento:
Il sistema presenta alcune delle opzioni più importanti e maggiormente utilizzate. La sintassi è molto semplice:
robocopy “sorgente” “destinazione”. Un esempio potrebbe essere cosi:
robocopy c:dati z:backup_dati
Visto cosi, lo script è abbastanza scarno e privo di aiuto per noi. Inseriamo qualche “complicazione”, ed osserviamo cosa risulta:
robocopy C:dati C:backup /E /COPYALL /MIR /R:1 /W:2 /X /ETA
In questo modo, copieremo i vari file tra le due cartelle, mantenendo i permessi, eseguendo l’operazione di mirroring (i file che sono in destinazione ma non in sorgente verranno dunque cancellati), ed eseguendo dei try in base al valore associato al parametro /R.
Robocopy presenta molte limitazioni, ma per copie singole, ad esempio un cambio server/storage, o migrazione dati, è perfetto.
Tenete presente che durante il trasferimento, i dati non sono ne compressi, ne crittografati. Abbiate dunque pazienza, e un canale sicuro in caso vadano via internet.
In questo caso, l’output sarà a video, poiché non abbiamo specificato un file di log.
Se volessimo mantenere tutti i log del backup, non serve altro che aggiungere, in fondo alla stringa, questa parte:
/LOG:BACKUP.txt, che diventerà:
robocopy C:dati C:backup /E /COPYALL /MIR /R:1 /W:2 /X /ETA /LOG:Backup.txt
Il file backup.txt verrà dunque creato nella root dello script (quindi nel nostro caso in C:)
Il contenuto sarà del tutto uguale all’output in tempo reale, ma comodo per poter essere consultato successivamente, o mandato via mail come report.
Per installare Robocopy su Windows Server 2003, è necessario scaricare il Resource Kit Tool. Su Windows 2008 Server invece, Robocopy è già integrato nel sistema.
Comandi:
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 : (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.: \MIOPCCartella o \192.168.0.1Cartella) 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 \Server1reports \Server2backup *.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=\FileServ1e$users
SET _dest=\FileServ2e$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%
Infine, per chi trovasse più comodo l’utilizzo di Robocopy attraverso una GUI, ecco le videate attraverso
cui impostare le varie opzioni. :oki: