Blog Stats
  • Posts - 14
  • Comments - 14
  • Trackbacks - 1205

 

Backup facili e free con Robocopy

Pochi giorni fa un amico mi chiedeva un sistema comodo, facile e veloce per fare il backup di intere (enormi) cartelle su un disco esterno. In questi casi il semplice drag 'n drop cui ci ha abituato Zio Bill non e' affatto utile. La copia e' lenta e farraginosa e anche da linea di comando i vari copy e xcopy non sono granche' di aiuto. Ecco che miracolosamente mamma Microsoft fa spuntare dal cilindro una utility comodissima: Robocopy. Vediamo cosa e', a cosa serve e come funziona.
Iniziamo col dire che questa utility (Robust File Copy) fa parte del resource kit di Windows Server, e consente la copia anche di interi dischi. Risulta estremamente utile quando si vuole far eun backup periodico dei dati su un portatile senza necessariamente copiare il superfluo.
Alcuni dei principali vantaggi sono:
copia dei soli file modificati
bypass dei permessi di lettura (backup mode solo dalla versione XP010)
mantenimento (o rimozione) delle ACL su dischi NTFS (e dei flag del file)
origine e destinazione su qualunque percorso, share di rete comprese
selezione (o esclusione) di alcuni file, per cartella, estensione o data
spostamento sicuro dei files (NON fare MAI la move da un pc all'altro col drag 'n drop !!!)
possibilita' di monitoring di cartelle
log a video e/o su file
E altri che al momento tralascio.
Non spaventatevi davanti alle numerose opzioni che l'utility mette a disposizione (il manuale .doc conta 35 pagine). Le opzioni realmente necessarie sono veramente poche. Io solitamente uso: robocopy {origine} {destinazione} /e /b /w:1 /r:1 /copyall ed e' piu' che sufficiente. Ovviamente origine e destinazione possono essere percorsi come c:\miacartella oppure \\pc-ufficio\condivisione. ricordarsi di inserire i percorsi tra doppi apici nel caso contengano spazi come ad esempio "c:\Documents and settings\administrator"
Nel dettaglio le opzioni che utilizzo sono:
/e copia tutte le sottocartelle, comprese quelle vuote
/b backup mode, copia il file anche se non ci sono permessi di lettura (utile in molti casi)
/w:1 attesa di 1 secondo in caso di errore
/r:1 ritenta 1 volta in caso di errore
/copyall copia tutte le informazioni sui file
non specifico il tipo di file perche' per default e' già impostato a *.*
Ci sono poi altri mille usi possibili, limitati solo dalla fantasia e.. dalle possibilità dell'utility !
A me ha aiutato durante il trasferimento di files verso share remote (mooolto remote) in cui il retry faceva bene il suo lavoro, oppure nella migrazione di server con la copia notturna dell'intero albero di cartelle e files condivisi con successiva "sincronizzazione" in pochi minuti prima dello spegnimento.
Per agevolarvi il lavoro ho preparato un piccolo file batch che vi consente di fare la copia specificando semplicemente origine e destinazione.
Copiate il listato qui sotto in un file di testo che salverete come copia.cmd (.bat se preferite, ma ormai chi lo usa piu'). ora optrete fare i vostri backup con: copia {origine} {destinazione}. Ho incluso anche una mini guida all'uso del batch che appare se lo lanciate senza parametri. Ovviamente potete modificare i parametri della linea di comando di Robocopy secondo le vostre esigenze.

@echo off
cls

if [%1] == [] goto usage
if [%2] == [] goto usage
if [%3] == [] set log=%1copia_%date:/=_%.log
if NOT [%3] == [] set log=%3copia_%date:/=_%.log

robocopy %1 %2 /e /w:1 /r:1 /b /np /log:%log% /tee

goto done

:usage
echo Utilizzo:
echo copia origine destinazione [log]
echo - origine e' il percorso da cui copiare
echo - destinazione e' il percorso su cui copiare
echo - log (opzionale) e' il percorso in cui creare il file di log.
echo   Se omesso utilizza l'orgine.
echo In caso i nomi di origine o destinazione contengano spazi
echo racchiuderli tra " " es: "c:\documents and settings"

goto end

:done
echo lavoro completato.
echo log creato su %log%

:end

Se poi siete pigrissimi potete cercare su Google "Robocopy gui" e trovate alcune interfacce che vi agevolano il lavoro (ma non le ho fatte io...).
Se avete bisogno fate un cenno.
HTH
Max

Feedback

# re: Backup facili e free con Robocopy

Gravatar Ciao, visto che sai usare Robocopy Gui mi puoi dire come si fa a memorizzare un percorso o più percorsi per non reimpostarli ogni volta. Come si faceva con il vecchio robocopy. Grazie 13/02/2009 12.11 | Luca

# re: Backup facili e free con Robocopy

Gravatar Ehm, anche tu non scherzi... Potremo fare un gruppo di autoaiuto;)

Comunque io mi limito, ho dovuto rimuovere alcune pagine per non urtare la sensibilità del mio datore di lavoro...

Marco A. 16/02/2009 19.21 | Marco

# re: Backup facili e free con Robocopy

Gravatar @luca
Non uso mai le gui di robocopy, mi stanno antipatiche. Io solitamente creo dei batch che casomai pianifico in esecuzione automatica.
Puoi usare i parametri /job (/save)

HTH Max. 04/03/2009 23.24 | Max

# re: Backup facili e free con Robocopy

Gravatar @Marco
Io con le mele ho poca dimestichezza, pur avendone una in casa... :D
Se serve una mano, pero' aiuto volentieri !

Max 04/03/2009 23.25 | Max

# re: Backup facili e free con Robocopy

Gravatar è possibile usare Robocpy via VB o C#?

Grazie 08/05/2009 14.13 | Stefano P.

# re: Backup facili e free con Robocopy

Gravatar Lo puoi usare richiamandolo esternamente, come chiameresti qalunque eseguuibile. Puoi eseguirlo passando un Job come parametro, cosi da poterlo configurare facilmente.
Essendo un eseguibile standalone non ha riferimenti COM o api richiamabili via codice. A quanto mi risulta.

HTH.
Max 08/05/2009 15.44 | Walimay

# re: Backup facili e free con Robocopy

Gravatar ciao ho un problema su server 2003 su cui faccio girare robocopy. devo usare /MAX: e qui dovrei metterci 1gb così da copiare tutto sotto un gb, ma mi da errore #7 parametro non valido ovviamente metto 1000000000 come posso superare questo errore, dove sbaglio?
grazie mille dell'interessamento. 09/02/2010 18.21 | Alessandro

# re: Backup facili e free con Robocopy

Gravatar Ciao,
non perderci la testa, e' un problema di robocopy. Il parametro /MAX accetta valori a 9 cifre quindi inserendo 1.000.000.000 va in errore.
Il workaround e' inserire appunto 999.999.999. non credo che 1 byte di differenza comporti problemi. ;-)
Anche le ultime versioni (ho provato fino alla XP026) non hanno risolto il bug.

HTH
Max. 10/02/2010 14.19 | Walimay

Post a comment





 

Please add 6 and 5 and type the answer here:

 

 

Copyright © Max