cum se utilizează rsync cu exemple

Rsync este un instrument popular pentru sincronizarea fișierelor, atât la nivel local, cât și de la distanță. Spre deosebire de alte instrumente de sincronizare, rsync folosește un algoritm interesant care minimizează consumul de lățime de bandă. Pur și simplu mută porțiunea fișierului(fișierelor) care s-au schimbat.

este o utilitate puternică care poate servi în multe situații. În acest articol, voi prezenta cum să începeți cu rsync cu o demonstrație. Demonstrația va fi efectuată pe Ubuntu 18.04.

Rsync

Rsync înseamnă termenul sincronizare la distanță. În ciuda numelui, poate gestiona sincronizarea fișierelor de la distanță și local. Termenul rsync este, de asemenea, utilizat pentru a se referi la Protocolul rsync pe care rsync îl folosește pentru sincronizare. În acest articol, rsync va indica întotdeauna instrumentul, nu protocolul.datorită popularității sale, rsync este disponibil pe aproape toate sistemele Linux și UNIX. Există șanse mari să fie preinstalat. Dacă nu, faceți o mică cercetare despre cum să instalați rsync în sistemul dvs.

Iată o listă scurtă de caracteristici rsync oferte.

  • Directory copying
  • Easy Backup configuration
  • poate funcționa peste SSH
  • poate rula ca daemon/server
  • file permission retention

Rsync usage

înainte de a sări în rsync, avem nevoie de câteva fișiere fictive cu care să lucrăm. Să creăm mai întâi un director fals.

$ mkdir-v primar

odată creat, este timpul pentru a crea o mână de fișiere fictive. Pentru a crea un fișier, voi folosi comanda touch. Aflați mai multe despre comanda tactilă.

$ touch dummy{1..20}

Voila! Acum suntem gata să folosim rsync pentru a efectua acțiuni folosind aceste fișiere fictive.

Rsync structura de comandă

Rsync utilizează următoarea structură de comandă.

$ rsync <opțiune><src><destinație>

sincronizați directoarele locale

acum, este timpul să utilizați rsync pentru sincronizarea fișierelor pe mai multe destinații. În acest exemplu, vom sincroniza conținutul dir_primary cu dir_target.

$ mkdir-v target

spuneți rsync să sincronizeze conținutul ambelor directoare.

$ rsync-v-r primar/țintă

aici, am folosit două argumente diferite.

-v: spune rsync pentru a rula în modul verbose
-r: recursiv, necesare pentru director sincronizarea.

în acest exemplu următor, vom folosi un steag diferit.

$ rsync-v-a Primar/țintă

-a: un steag combinat care înseamnă „arhivă”.

folosind acest steag, rsync va sincroniza conținutul recursiv păstrând în același timp orice fișiere simbolice, speciale / Dispozitive, timpi de modificare, permisiuni de fișiere, grup, proprietar etc. Este mai frecvent utilizat decât steagul „-r”. Pentru arhivare, aceasta este o metodă mai recomandată.

ați observat că în toate comenzile pe care le-am rulat până acum, în cazul sursei, păstrăm întotdeauna ” / ” după numele directorului? Acest lucru este de a spune rsync că sursa este tot conținutul directorului sursă. Dacă ” / ” de la sfârșitul directorului sursă nu este utilizat, rsync va crea pur și simplu o copie a directorului sursă în loc de conținutul său.

să verificăm cu un exemplu.

$ rsync-v-o țintă principală

verificați rezultatul de ieșire.

$ tree target /

de cele mai multe ori, acest lucru nu este ceva de care avem nevoie. Cu toate acestea, în funcție de situație, ar putea fi util.

Rsync test run

înainte de a rula o comandă rsync, este întotdeauna important să verificați dacă comanda va efectua acțiunea conform așteptărilor. Dacă doriți să testați acțiunea rsync pentru o anumită comandă, utilizați steagul „-n” sau „-dry-run”.

$ rsync-AVN primary/target

$ rsync-AVN primary target

aici, ieșirea arată ce ar efectua rsync dacă comanda ar fi executată efectiv. Ori de câte ori testați, nu uitați să utilizați steagul „-v” pentru a obține o reprezentare exactă a ceea ce se întâmplă.

Rsync printr-o conexiune la distanță

aceasta este o altă caracteristică interesantă rsync acceptă. Dacă locația dvs. de rezervă este undeva la distanță, puteți configura cu ușurință rsync pentru a efectua backup pe locația de la distanță prin SSH. Cu toate acestea, ambele mașini trebuie să aibă rsync instalat. Mai mult, ambele sisteme trebuie, de asemenea, să aibă chei SSH setate.

gata? Să începem. La început, este sincronizarea arhivei.

$ rsync-a <local_dir><username><remote_host><
destination_dir>

aici, această operațiune este numit „push”, deoarece împinge un director de la sistemul local la un sistem la distanță. Opusul este cunoscut sub numele de „trage”.

$ rsync-a <nume utilizator><remote_host><source_dir><local_dir>

rsync tratează primul argument sursa, a doua ca destinație.

Opțiuni rsync utile

Rsync acceptă o mulțime de opțiuni. Toți își servesc propriul scop. Cu toate acestea, în cea mai mare parte, doar o mână dintre ele sunt folosite de cele mai multe ori. În această secțiune, să aruncăm o privire la câteva opțiuni rsync utile.

de cele mai multe ori, fișierele pe care urmează să le sincronizați nu sunt comprimate. Folosind compresia, puteți economisi atât timp, cât și lățime de bandă, cu prețul unei puteri de procesare puțin suplimentare. Rsync oferă compresie în mod implicit. Pentru a efectua sincronizarea comprimată, utilizați steagul” – z”.

$ rsync-avz <sursă><destinație>

acest steag interesant combină funcția atât a steagului „-progress”, cât și a steagului „-parțial”. Primul este de a arăta o bară de progres a transferului, iar al doilea este de a permite reluarea transferului întrerupt. Ambele caracteristici sunt combinate în steagul” – P”.

$ rsync -avzP <source><destination>

Now, let’s check out how rsync handles file syncing intelligently. Run the previous command again.

$ rsync-avzP <sursă><destinație>

aici, rsync nu a re-încărca toate fișierele. În schimb, a sărit peste cele care nu s-au schimbat deloc. În acest exemplu, a omis toate fișierele, deoarece toate sunt prezente în directorul destinație.

Ce se întâmplă dacă ați șters un fișier din directorul sursă? În mod implicit, rsync nu va șterge nimic din directorul destinație. Pentru a forța ștergerea fișierelor rsync, utilizați steagul” – delete”. Cu toate acestea, utilizați rularea uscată pentru a testa dacă comanda funcționează așa cum doriți.

$ rsync-avn –delete <sursă><destinație>

în mod implicit, rsync va sincroniza fiecare fișier/director de la sursă la directorul de destinație. În anumite situații, poate doriți să includeți / excludeți anumite fișiere de la sincronizare. Rsync oferă opțiuni la îndemână, cum ar fi” –exclude „și” – include ” pentru a exclude/include anumite fișiere. Treceți modelul fișierului ca valoare pentru aceste argumente.

$ rsync-avn –exclude=<model> –include=<model>

de asemenea, puteți defini cea mai mare dimensiune de fișier pe care rsync ar trebui să o sincronizeze. Pentru a face acest lucru, utilizați steagul „–max-size” urmat de dimensiunea fișierului.

$ rsync-avn –max-size=’10K’ <sursă><destinație>

rsync are o altă caracteristică interesantă în manșonul său. Nu mai aveți nevoie de fișierul sursă după sincronizare? Rsync poate face asta, nici o problema. Cu toate acestea, asigurați-vă că nu rulați rsync cu steagul „- delete”. În caz contrar, rsync va șterge fișierele sincronizate de la destinație!

$ rsync-av –remove-source-files <source><destinație>

gânduri finale

acestea sunt doar câteva scenariu comun și simplu de utilizare rsync. Acesta oferă mult mai mult decât atât. Este posibil pentru a automatiza operațiunile rsync folosind fie daemon rsync sau alte scripting. Sperăm că acest ghid a fost util pentru a începe cu rsync.

interesat de mai multe rsync? Ei bine, puteți utiliza rsync ca copiator de fișiere. Este mai eficient și mai inteligent decât cp. Mai multe caracteristici în profunzime și de utilizare pot fi găsite în rsync man page.

$ Man rsync

bucurați-vă!



Lasă un răspuns

Adresa ta de email nu va fi publicată.