cmd – robocopy sync folders

cmd - robocopy sync foldersO data cu Windows Vista cei de la Microsoft au introdus robocopy, un nou utilitar care sincronizeaza informatii.

Chiar daca robocopy a aparut o data cu Vista nu inseamna ca nu poate fi folosit si pentru Windows XP. Tot ce trebuie sa facem este sa il copiem undeva si sa-l executam. Putem opta sa-l copiem in  c:\windows\system32 pentru a folosi comanda direct fara a scrie si calea unde a fost salvat.

cmd – robocopy sync folders

Il poti descarca o data cu  Windows Server 2003 Resource Kit Tools de aici sau sa-l copiezi de pe un alt PC cu Windows Vista sau 7.

Deci de ce avem nevoie de robocopy ? De exemplu atunci cand dorim sa facem o sincronizare a doua directoare (folders). Prin sincronizare intelegem sa se faca copierea acelor informatii care sunt modificate/diferite fata de directorul sursa. Astfel evitam pierderea de timp si implicit de resurse fara sa mai fie nevoie de copierea informatiilor identice de exemplu. 

Acest lucru este necesar in special atunci cand dorim sa facem backup. In acest caz este recomandat sa folosim locatii diferite pentru directorul unde salvam/sincronizam informatiile.

Cateva scenarii legat de”locatii diferite”:
– acelasi hard disk dar folosind mai multe partitii (una pentru directorul sursa si una pentru directorul destinatie)
– acelasi PC cu doua hard disk-uri interne (unul pentru directorul sursa si unul pentru directorul destinatie)
– PC cu un hard intern si unul extern (cel intern pentru directorul sursa si cel extern pentru directorul destinatie)
– PC cu un hard intern ( pentru directorul sursa) si o locatie externa dintr-o retea locala (pentru directorul destinatie) – director partajat folosind pushd cu UNC Path (vezi aici un articol despre pushd) sau director mapat pe un disk virtual (vezi aici un articol despre mapare)


cmd – robocopy sync folders

Sa vedem cum il putem folosi,….avem urmatoarea situatie pentru exemplificare:
– avem ca sursa directorul c:\Proiecte
– si dorim sa-l sincronizam cu directorul destinatie d:\backup\Proiecte 
– iar sincronizarea sa se faca pentru toate fisierele si folderele, chiar si cele goale (folosind parametru /E)

comanda pentru situatia de mai sus este urmatoarea:

robocopy /E  /R:3 /W:10 "c:\Proiecte" "d:\backup\Proiecte"

– folosim /R:3, unde 3 este numarul de incercari daca sunt erori la copiere. Este indicat sa-l adaugam pentru ca valoarea default este 1 million.
– si /W:10 unde 10 sunt cate secunde sa astepte intre incercarile de copiere in caz ca sunt erori. Si aici este indicat sa adaugam o valoare pentru ca default este 30 secunde.

Daca dorim sa evitam directoarele goale comanda este:

robocopy /S  /R:2 /W:10 "c:\Proiecte" "d:\backup\Proiecte"

Unde /S este parametru pentru copierea Subdirectoarelor, dar nu si cele goale.

Daca dorim sa mutam sursa (adica sa o sterga automat) dupa copiere comanda este:

robocopy /E /MOVE  /R:2 /W:10 "c:\Proiecte" "d:\backup\Proiecte"

daca alagem /MOVE se vor muta atat fisierele cat si directoarele
daca alegem /MOV se vor muta doar fisierele

Sunt nenumarate alte optiuni si setari pe care le putem alege. De exemplu daca vrem sa excludem fisierele noi folosim /XN, /XC pentru excluderea fisierelor modificate sau /XO pentru excluderea fisierelor vechi. De asemenea putem exclude dupa dimensiunea fisierelor cu /MAX sau /MIN iar pentru data la care au fost accesate se foloseste /MAXAGE:n sau /MINAGE:n.

Dupa ce gasiti comanda care va avantajaza o puteti copia intr-un fisier .bat si puteti seta un schedule task pentru automatiza sincronizarea sau backup-ul. 

Daca nu sunteti familiarizati cu linia de comanda si generarea unui astfel de script (fisie .bat), aveti cel putin 2 alternative:
1. pe sourceforge.net gasiti aplicatia RoboCop RoboCopy,
2. unul din utilitarele facute de inginerii de la Microsoft:
        – UtilitySpotlight facuta in 2006 (info aici)
        – HoffmanUtilitySpotlight facuta in 2009 (info aici)
ambele cu interfata grafica (GUI), cu ajutorul lor putem genera un astfel de script.

Pentru a vedea toate optiunile acestei comenzi (robocopy), foloseste comanda de mai jos si se vor afisa pe ecran:

robocopy /? 

 Mai mute info gasiti pe site-ul celor de la Microsoft sau pe Wikipedia.

One Reply to “cmd – robocopy sync folders”

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.