Meniu

Cum se utilizeaza Rsync pentru transferul local/la distanta de date sincronizare

Rsync este un utilitar rapid si versatil in linia de comanda care sincronizeaza fisiere si foldere între doua locatii la distanta, sau de la / la un demon rsync la distanta. Acesta ofera un transfer rapid de fisiere prin transferul numai a diferentelor dintre sursa si locatiile de destinatie.

Rsync poate fi utilizat pentru oglindire de date, backup - uri incremental, copierea fisierelor între sisteme si ca un înlocuitor pentru comenzi scp si cp pentru utilizarea de zi cu zi.

In acest tutorial, va vom arata cum sa utilizati rsync prin exemple practice si explicatii detaliate ale optiunilor cele mai comune rsync.

instalarea Rsync

Utilitarul rsync este pre-instalat pe cele mai multe distributii Linux si Mac OSX. Puteti verifica daca acesta este instalat pe sistemul dumneavoastra tastând:

rsync --version
rsync version 3.1.2 protocol version 31

Daca nu aveti rsync instalat pe sistemul dvs., puteti instala cu usurinta folosind managerul de pachete de distributie dumneavoastra.

Instalati Rsync pe Ubuntu si Debian

sudo apt install rsync

Instalati Rsync pe CentOS si Fedora

sudo yum install rsync

Rsync sintaxa comanda

Înainte de a intra în modul de utilizare a comanda rsync, sa începem prin revizuirea sintaxei de baza.

Expresiile de utilitate rsync iau forma urmatoare:

Local to Local: rsync [OPTION]... SRC [SRC]... DEST Local to Remote: rsync [OPTION]... SRC [SRC]... [USER@]HOST:DEST Remote to Local: rsync [OPTION]... [USER@]HOST:SRC [DEST]

OPTION- Cu privire la optiunile rsync
SRC - Directorul sursa
DEST - director de destinatie
USER - nume de utilizator la distanta
HOST - Gazda la distanta

Rsync ofera o serie de optiuni care controleaza fiecare aspect al comportamentului sau. Cele mai utilizate optiuni sunt:

-a, --archive Modul de arhiva, echivalent -rlptgoD. Utilizate în mod obisnuit optiunea care va sincronizeaza directoare recursiv, dispozitive speciale de transfer si de bloc, pastreaza legaturile simbolice, timpii de modificare, de grup, dreptul de proprietate si permisiunile.
-z, --compress. Aceasta optiune va forta rsync pentru a comprima datele pe masura ce este trimis la masina de destinatie. Utilizati aceasta optiune numai în cazul în care conexiunea la aparatul corespondent este lent.
-P, Echivalent --partial --progress. Aceasta optiune va spune rsync pentru a afisa o bara de progres în timpul transferului si pentru a pastra fisierele partial transferate. Este util atunci când transferul de fisiere mari prin conexiuni de retea sau instabile lente.
--delete Când utilizati aceasta optiune rsync va sterge fisierele straine din locatia de destinatie. Este util pentru oglindire.
-q, --quiet. Utilizati aceasta optiune daca doriti sa suprime mesajele non-eroare.
-e. Aceasta optiune va permite sa alegeti o coaja de la distanta diferita. Implicit Rsync este configurat sa foloseasca ssh.

Utilizare de baza Rsync

Pentru a copia un singur fisier local in o alta locatie ar trebui sa executati urmatoarea comanda:

rsync -a /opt/filename.zip /tmp/

Daca doriti sa salvati fisierul sub un alt nume trebuie sa specificati numele nou:

rsync -a /opt/filename.zip /tmp/newfilename.zip

In exemplul de mai jos vom crea o copie de rezerva locala a fisierelor site:

rsync -a /var/www/domain.com/public_html/ /var/www/domain.com/public_html_backup/

Daca directorul de destinatie nu exista rsync al va crea.

Este demn de mentionat faptul ca rsync ofera un tratament diferit la directoarele sursa cu bara oblica /. Daca adaugati bara oblica pe directorul sursa va copia doar continutul directorului catre directorul de destinatie. Când bara oblica este omisa rsync va copia directorul sursa din interiorul directorul de destinatie.

Cum se utilizeaza Rsync pentru sincronizare de date de la / la o masina de la distanta

Când se foloseste rsync pentru transferul de la distanta, acesta trebuie sa fie instalat pe ambele masini: sursa si destinatie. Noile versiuni ale rsync sunt configurate pentru a utiliza SSH ca implicit la distanta.

În urmatorul exemplu, transferul unui director de la un local la o masina de la distanta:

rsync -a /opt/media/ remote_user@remote_host_or_ip:/opt/media/

Daca nu ati setat o autentificare SSH passwordless la masina de la distanta, vi se va cere sa introduceti parola de utilizator.

Daca doriti sa transferati date de la o distanta la o masina locala, atunci trebuie sa folositi locatia de la distanta ca sursa:

rsync -a remote_user@remote_host_or_ip:/opt/media/ /opt/media/

Daca  gazda de la distanta SSH este de a asculta pe un alt port decât cel implicit 22 , atunci puteti specifica portul folosind argumentul -e:

rsync -a -e "ssh -p 2322" /opt/media/ remote_user@remote_host_or_ip:/opt/media/

Când transferati cantitati mari de date, este recomandat sa rulati comanda rsync în interiorul unui ecran de sesiune sau sa folositi optiunea  -P.

Excludeti Fisiere si Directoare

Atunci când cu exceptia fisierelor sau directoare trebuie sa utilizati caile lor relative. Exista doua optiuni pentru a exclude fisiere si directoare atunci când se utilizeaza rsync.

Prima optiune este de a utiliza argumentul --exclude si specificati fisierele si directoarele pe care doriti sa le excludeti pe linia de comanda. 

rsync -a --exclude=node_modules --exclude=tmp /src_directory/ /dst_directory/

A doua optiune este de a utiliza argumentul  --exclude -from si specificati fisierele si directoarele pe care doriti sa le excludeti într - un fisier.

rsync -a --exclude-from='/exclude-file.txt' /src_directory/ /dst_directory/
/exclude-file.txt
node_modules tmp

Concluzie

Ati învatat cum sa folositi Rsync pentru a copia, sincroniza fisiere si directoare.

FlorinM

Utilizator Linux - Solus OS, pasionat de calatorii.
  • | 2708 articole

Nici un comentariu inca. Fii primul!
  • powered by Verysign