Posts tagged: UNIX

Cum sa folosesti “rsync” pentru backup

By , 10/04/2010 21:44

Nu-i asa ca v-ati gandit macar o data in viata “Ce bine ar fi fost sa am un backup!”? De obicei este o expresie pe care o spui la ananghie si cand ceva foarte rau s-a intamplat deja.  Uneori exista sanse de recuperare a datelor pierdute. Alteori, din pacate, nu.

Drept urmare intotdeauna este bine sa va faceti un backup la datele importante sau chiar la intreg sistemul, pentru a evita neplacerile si smulsul parului din cap de mai tarziu.

Evident, pentru sistemele Linux/UNIX exista diverse modalitati de rezolvare a acestei probleme. De la solutii comerciale pana la solutii simple, dar eficiente. Si, cum este criza si eu prefer solutiile care nu sunt numai gratuite ci si libere, vom discuta despre una din cele mai simple metode de backup pe care am intalnit-o pana acum: rsync. La baza, aceasta aplicatie a fost creata pentru a reusi sa mentii sincronizate structuri de fisiere si directoare la distanta, de unde si numele r(emote)sync(hronization). Este o aplicatie client-server, dar poate fi folosita si de sine statator, fara existenta unui server propriu-zis. Acest fapt o face foarte utila pentru scopul nostru.

In principiu cam ce ne dorim atunci cand vrem sa facem un backup? Pai, sa creem o copie fidela a datelor noastre pe un alt suport de stocare de unde sa putem sa recuperam datele mai tarziu, atunci cand le pierdem de pe suportul lor original.

Sa zicem ca vrem, de exemplu, sa salvam directoarele home ale utilizatorilor de pe un anumit sistem. Pentru asta trebuie sa instruim rsync sa faca acest lucru. Presupunem ca am “mount”-at un HDD extern sau un stick USB de capacitate suficienta in directorul /mnt/unitatebackup.

Comanda este relativ simpla:

# rsync -r /home/ /mnt/unitatebackup/

Optiunea “-r” ii spune rsync-ului sa copieze recursiv tot ce se afla in directorul /home.

Pana aici toate bune. Dar ce ne facem ca in /home sunt fisiere si directoare ale mai multor utilizatori, iar rsync le va copia in noua locatie cu drepturile utilizatorului care face backup-ul, de obicei root. Va trebui sa schimbam owner-ul si grupul pentru fiecare director sau fisier al tuturor userilor. Si daca acestia aveau si ei la randul lor diferite permisiuni setate, acestea se vor pierde.

Important este sa nu disperam, rsync are o solutie si pentru acest lucru:

# rsync -r -p -o -g /home/ /mnt/unitatebackup/

Optiunea “-p” pastreaza atributele (drepturile) fiecarui director si fisier in parte, iar “-o” si “-g” pastreaza owner-ul si group-ul. Evident sistemul de fisiere pe care facem backup-ul trebuie sa suporte aceste optiuni (ex: ext3/ext4/reiserfs/xfs).

Ce ar mai putea sa ne intereseze? Sigur ne va interesa sa pastram si data de creare a fisierelor (-t). Hmm..  si faptul ca daca exista symlinks, rsync va copia in loc de symlink-uri fisierul original. Ceea ce nu ne prea dorim fiindca ar creea copii ale aceluiasi fisier/director in loc sa creeze doar symlink-ul (-l). Ah, si s-ar putea sa avem si fisiere speciale in directorul pe care vrem sa-l salvam sau in subdirectoarele lui precum socket-uri sau dispozitive gen /dev/null (–devices, –specials, sau, mai pe scurt -D).

Asadar, pentru a face un backup complet care sa pastreze nu numai datele ci si elementele descrise de mine mai sus, ar trebui sa scriem aceasta comanda:

# rsync -r -p -o -g -t -l -D /home/ /mnt/unitatebackup/

sau, mai pe scurt:

# rsync -rpogtlD /home/ /mnt/unitatebackup/

Cam complicat de tinut minte, nu-i asa? Ei bine, cei care au creat aplicatia s-au gandit ca s-ar putea sa uitam dintre optiuni. Si atunci au unit toate optiunile de mai sus intr-una singura: –archive sau, si mai pe scurt, -a.

Asadar pentru a face backup directorului /home, vom scrie asa:

# rsync -a /home/ /mnt/unitatebackup/

Nu-i asa ca e mult mai simplu? O comanda foarte simpla care iti poate salva parul din cap de la maltratare prin smulgere in momentul in care din varii motive se vor pierde date.

Inca un lucru, rsync face updat-ari incrementale ale tree-ului. Daca veti da aceeasi comanda mai tarziu, vor fi copiate doar fisierele/directoarele nou create sau care au fost modificate. Acesta este un lucru foarte bun atunci cand nu vreti sa se copieze din nou intreg tree-ul, pentru ca ar dura foarte mult. rsync va face o diferenta intre tree-ul sursa si cel destinatie si va copia numai ce este adaugat sau modificat de la ultima sincronizare.

Alte optiuni care merita mentionate sunt:

-v: face rsync-ul mai vorbaret; iti va arata pas cu pas ce face (inclusiv ce copiaza si unde anume)

-x: daca sub directorul pe care il copiezi exista mount-ata o alta partitie sau un alt sistem de fisiere, acesta nu va fi adaugat la lista de copiere (de exemplu in cazul nostru, sa zicem ca ai /home/ftp pe o partitie separata… directorul /home/ftp va fi creat pe unitatea de backup, dar continutul lui nu va fi copiat)

–delete-excluded: in mod normal, daca stergi un fisier din tree-ul sursa, rsync nu-l va sterge si din tree-ul destinatie, dar daca vrei sa ai o copie exacta a tree-ului sursa si in destinatie, atunci aceasta optiune va sterge si din destinatie fisierele care au disparut din sursa de la ultimul rsync.

Sper ca acest tutorial sa va salveze de cateva dureri de cap. Desi nu va doresc sa aveti nevoie de backup, este bine ca acesta sa existe.

Oracle Solaris (ex Sun Solaris) nu mai este gratuit

By , 31/03/2010 11:04

Cei de la Oracle au luat decizia de a nu mai distribui licente gratuite pentru sistemul cumparat de ei odata cu Sun Microsystems.

Inainte, cei de la Sun ofereau licente gratuite pentru sistemul lor UNIX. Iar daca doreai suport tehnic din partea companiei puteai cumpara un astfel de serviciu.

Din pacate pentru comunitatea OpenSource cei de la Oracle se gandesc sa nu mai publice nici sursele viitoarelor adaugiri ce le vor face la Solaris. De aceea si soarta OpenSolaris s-ar putea sa fie destul de cruda. Adica va fi probabil lasata doar in “mana” comunitatii.

Ne asteptam cu totii ca Oracle sa genereze cateva schimbari majore in ceea ce priveste vechile politici ale celor de la Sun. Din pacate, desi toti cei implicati in miscarea OpenSource sperau sa nu se intample asa, se pare ca angajamentul celor de la Sun fata de aceasta miscare s-a schimbat drastic odata cu preluarea de catre Oracle. Si nu in bine. Sper sa apara dezvoltatori dedicati care sa duca mai departe OpenSolaris si, eventual, sa-l faca mai bun decat vor putea cei de la Oracle vreodata. Acum nu m-as supara nici daca vreo cativa dezvoltatori ai Sun se vor alatura comunitatii, parasind corabia marii companii pentru care lucreaza acum in urma preluarii. Asa cum s-a intamplat si in cazul MySQL, de altfel.

La inceput de drum, sa ne prezentam!

comments Comments Off on La inceput de drum, sa ne prezentam!
By , 11/01/2010 22:03

Salut.

Pentru inceput sa facem cunostinta. Numele meu este Cristian Contescu (Cristi, mai pe scurt). Sunt pasionat de domeniul IT, in special de networking si sisteme de operare de tip UNIX. Mai pe scurt sunt un mare admirator al sistemului de operare GNU/Linux, pasiune care m-a purtat atat pe “aripile” unor alte sisteme de operare Open Source derivate ale batranului UNIX (FreeBSD, OpenBSD, Solaris) cat si catre domenii conexe precum retelistica, componente hardware, securitatea sistemelor de operare si a retelelor.

Sper ca pe parcursul articolelor viitoare sa reusesc sa starnesc si in voi interesul pentru acest domeniu si sa va ajut sa patrundeti mai usor in “tainele” acestor domenii. Nu e greu, trebuie doar sa vrei. 🙂

Panorama Theme by Themocracy