▷ Rsync Linux: Cum se utilizează și se comandă exemple

Utilizarea comenzilor în Linux este mai mult decât firească, deoarece acestea sunt inima Linux de mulți ani, de aceea trebuie să fim conștienți de modul în care folosim aceste comenzi, deoarece, precum și unele sunt practice pentru sarcini fundamentale, altele pot fii periculos dacă nu le gestionăm corect. Una dintre cele mai funcționale comenzi Linux este protocolul rsync pe care Solvetic vă va explica în detaliu pe parcursul acestui tutorial. Să vedem mai întâi ce este rsync.

În prezent, menținerea unei infrastructuri de orice dimensiune fără backup poate fi considerată o nebunie, un disc poate eșua în orice moment și puteți pierde informații la fel de valoroase ca și contabilitatea companiei. În acest post vom vorbi despre cum să utilizați Rsync, unul dintre cele mai bune instrumente pentru backup-uri pe sistemele * nix. Vom vedea de la cele mai elementare la cele mai avansate exemple cu scripturi și exemple pe care le puteți aplica în mediul dvs. de lucru. Va fi un manual pentru a ști cum să folosiți rysnc.

Nevoia de a avea aceleași informații în locuri diferite a fost una care devine din ce în ce mai puternică, deoarece spațiul nostru de lucru este variabil și dorim să avem instrumentele noastre întotdeauna cu noi sau chiar ca măsuri de rezervă.

Ce este rsync?Este un instrument open source pentru transferul de fișiere și directoare între o locație și alta. Avantajele sale se bazează în principal pe comprimarea informațiilor de trimis, permite transferul să fie efectuat printr-un canal SSH și transferă doar fișierele și bucățile de fișiere care au fost modificate în loc să transfere din nou întregul fișier, ceva similar cu ceea ce se întâmplă la transferul diferențelor dintr-un fișier sub controlul versiunii Git.

Comanda rsync (Remote Sync) este o comandă dezvoltată pentru sarcini de copiere și sincronizare a fișierelor și a directorului fie de la distanță, fie local pe sistemele Linux sau UNIX.

Cu această comandă putem face copii din:

  • Local
  • Folosind un shell de la distanță
  • Prin intermediul unui demon rsync la distanță

Rsync utilizeazăPrintre diferitele utilizări ale rsync sunt următoarele:

  • Copii de rezervă automate pe servere sau discuri la distanță.
  • Sincronizarea la distanță a fișierelor și a directorului.
  • Transfer comun de fișiere.

Avantajele Rsync

  • Este mai rapid decât scp (Secure Copy) deoarece rsync folosește un protocol de încărcare care permite transferul doar diferenței dintre fișiere, prima dată când transferă întregul fișier pentru a doua oară doar modificările care pot exista.
  • Este proiectat pentru backup-uri de la distanță.
  • Suportă copierea tuturor permisiunilor de fișiere, de exemplu, proprietar, grupuri soft și hard link.
  • Utilizați o lățime de bandă mai mică utilizând compresia în timp ce trimiteți fișiere.

Rsync are o funcționalitate de transfer delta care permite reducerea cantității de date care este trimisă prin rețea permițând trimiterea doar a diferențelor dintre fișierele sursă și fișierele existente în destinația la distanță, de aceea rsync este ideal pentru backup și duplicare.
Rsync acționează în procesul de căutare a fișierelor care urmează să fie transferate utilizând un algoritm lqquick checkqq, care se ocupă de căutarea fișierelor care au suferit un fel de modificare.

Caracteristici RsyncUnele dintre principalele sale caracteristici sunt:

  • Integra opțiuni de excludere funcții similare cu GNU tar
  • Are suport pentru copierea de linkuri, dispozitive, proprietari, grupuri și permisiuni Linux
  • Adăugați un mod de excludere CVS care permite să ignore aceleași fișiere pe care CVS le-ar ignora în funcția sa
  • Nu necesită privilegii de superutilizator (root)
  • Putem folosi un shell de la distanță, cum ar fi ssh sau rsh
  • Oferă o conductă de transferuri de fișiere pentru a minimiza costurile de latență a rețelei
  • Suportă demonii rsync autentificați sau anonimi
  • Este mai rapid decât scp

Vom vedea cum să folosim parametrii rsync și rsync pentru a putea efectua sarcini cum ar fi rsync să copieze numai fișiere noi sau să ștergă fișiere țintă rsync.

1. Cum se utilizează rsync

Sintaxa pentru utilizarea acestei comenzi este următoarea:

 rsync opțiuni destinație resursă 
Variabile RsyncFolosind această sintaxă putem adăuga câteva variabile precum:

  • -v: modul detaliat.
  • -r: Această opțiune copiază datele recursiv fără a lăsa ștampile și permisiunea în timpul procesului.
  • -a: modul fișier care permite copierea recursivă a fișierelor și păstrează legăturile simbolice, permisiunile de fișiere, proprietatea utilizatorului și a grupului și marcajele de timp.
  • -z: Această opțiune comprimă datele din fișier.
  • -h: modul lizibil uman, numerele de ieșire într-un format lizibil uman.

Acum să vedem câteva exemple de utilizare a acestei comenzi. La sfârșitul tutorialului, Solvetic vă va oferi alți parametri pentru utilizarea rsync pe Linux.

2. Cum se instalează rsync

Pasul 1
În majoritatea sistemelor actuale, rsync este instalat în mod implicit, dar dacă nu este, putem executa următoarele:

 yum install rsync (Red Hat - CentOS - Fedora) apt-get install rsync (Debian - Ubuntu)

MARI

Pasul 2
În orice caz, trebuie să confirmăm instalarea rsync, în unele sisteme precum Ubuntu 20 vine deja în mod implicit:

3. Copiați fișiere și copiați directoare cu rsync


Prima utilizare a rsync este copierea sau sincronizarea locală a unui fișier sau director. Să vedem cum să copiați fișiere rsync, să copiați directoare cu rsync și să sincronizați două directoare cu rsync.

Pasul 1
Pentru aceasta vom executa următoarele

 rsync -zvh "fișier" "destinație" 

Pasul 2
Acolo putem vedea detalii precum:

  • Date trimise
  • Cantitatea de date primite
  • Viteza de transfer
  • Dimensiunea totală

Pasul 3
Dacă este cazul copierii unui director local, vom executa următoarele:

 rsync -zvh "director" "destinație" 

4. Copiați sau sincronizați folderele rsync la distanță sau directorul la distanță

Pasul 1
Putem copia sau sincroniza fișiere local pe un computer la distanță, pentru aceasta vom folosi următoarea sintaxă:

 rsync -avz file / [email protected]: / destination / 

Pasul 2
Ori de câte ori folosim IP-ul la distanță, trebuie să introducem parola de root a computerului la distanță. Acum, dacă vom copia un director la distanță pe serverul nostru local, vom folosi următoarea sintaxă:

 rsync -azvh [email protected]: / destination / directory / 

5. Rsync SSH cum se folosește


SSH (Secure Shell) este un mecanism de securitate suplimentar pentru transferul de date, acest lucru se realizează deoarece SSH folosește o conexiune sigură cu criptare foarte standardizată.

Pasul 1
Dacă vom copia un fișier local pe un computer la distanță cu SSH, trebuie să folosim opțiunea „-e” cu numele protocolului pe care doriți să îl utilizați:

 rsync -avzhe ssh [email protected]: / destination / directory 

Pasul 2
Pentru a copia un fișier local pe un server la distanță, vom folosi următoarea sintaxă:

 rsync -avzhe ssh "fișier" [email protected]: / destination / 

Pasul 3
Putem valida în directorul de la distanță că fișierul sau directorul a fost copiat:

MARI

6. Rsync arată progresul transferului de fișiere sau directoare


Aceasta este o metodă pentru o mai bună gestionare a transferurilor, acest lucru se realizează cu parametrul -progress:
 rsync -avzhe ssh --progress / source [email protected]: / destination 

7. Includeți sau excludeți directoare rsync


Opțiunile -include și -exclude sunt opțiuni care ne permit fie să includem fie să excludem fișiere, ne permit, de asemenea, să specificăm fișierele sau directoarele de inclus în sincronizare sau să excludem fișierele și folderele care nu ar trebui transferate.

Utilizarea sa este după cum urmează:

 rsync -avze ssh --include 'Letter *' --exclude '*' [email protected]: / destination 

8. Rsync șterge fișiere și directoare


În cazul în care un fișier sau un director nu se află în sursă, dar este deja disponibil în destinație, putem șterge acel fișier sau director în timpul procesului de sincronizare, pentru aceasta putem folosi -delete pentru a șterge elementele care nu se află pe computer de destinație, vom executa următoarele:
 rsync -avz --delete [email protected]: / destination 

9. Rsync Limitează dimensiunea fișierului


Cu parametrul -max-size putem indica care este dimensiunea maximă a obiectelor de transferat cu rsync, acest lucru ajută la controlul spațiului la distanță:
 rsync -avzhe ssh --max-size = '300k' / source / [email protected]: / destination 

10. Rsync șterge fișierele sursă dacă transferul a reușit

Cu variabila -remove-source-files este posibil ca fișierele care au fost sincronizate în sursă să fie eliminate numai dacă întregul proces a fost corect, pentru aceasta vom folosi următoarele. Vedem că fișierul sursă a fost șters.

 rsync --remove-source-files -zvh "fișier" / destinație / 

11. Rulați rsync fără a afecta fișierele


Aceasta este o opțiune ideală pentru persoanele care nu cunosc pe deplin puterea rsync, deoarece arată ce va face comanda, dar nu afectează originea, acest lucru se realizează cu parametrul -dry-run, de exemplu. Putem vedea că fișierul este încă acolo.
 rsync --dry-run --remove-source-files -zvh "fișier" / destinație / 

12. Limitați lățimea de bandă rsync


Cu parametrul -bwlimit va fi posibil să se definească rata de rețea pe care rsync ar trebui să o folosească pentru sarcinile de sincronizare, acest lucru se realizează după cum urmează:
 rsync --bwlimit = 200 -avzhe ssh / source / [email protected]: / destination 

13. Backup cu Rsync


Uneori trebuie să facem o copie de siguranță a anumitor informații înainte de a face modificări și, în cazul unei erori de recuperare de la Backup, vom începe cu o copie de rezervă de laborator dintr-un folder în altul. În acest fel vom crea o copie de rezervă cu rsync într-un mod complet și sigur.

Pasul 1
Începem prin a verifica dacă rsync este instalat.

 [user @ Solvetic ~] $ care rsync / usr / bin / rsync
Pasul 2
Vom crea 2 foldere pentru sursa și destinația fișierelor.
 mkdir {backup1, backup2} 
Pasul 3
Creăm mai multe fișiere în folderul backup1, în acest caz dimensiunea fișierelor nu contează.
 [user @ Solvetic ~] $ touch backup1 / fișier {1 … 75} 
Pasul 4
Directorul ar trebui să aibă 75 de fișiere. Facem copii de rezervă.
 [user @ Solvetic ~] $ ls backup1 / file1 file14 file19 file23 file28 file32 file37 file41 file46 file50 file55 file6 file64 file69 file73 file10 file15 file2 file24 file29 file33 file33 file38 file42 file47 file51 file56 file60 file65 file7 file74 file74 file11 file16 file20 file25 file3 file34 file39 file43 file48 file52 file57 file61 file66 file70 file75 file12 file17 file21 file26 file30 file35 file4 file44 file49 file53 file53 file58 file62 file67 file71 file8 file13 file18 file22 file27 file31 file36 file36 file40 file45 file5 file54 file59 file63 file68 file72 file9 file9
Pasul 5
Pentru a face backup fișierelor în backup2 pe care îl folosim. Sursa trebuie să se termine în / altfel ar copia dosarul și nu conținutul.
 rsync -r backup1 / backup2 
Pasul 6
DACĂ introducem backup2, putem vedea cele 75 de fișiere, putem verifica chiar dacă sunt 2 directoare identice folosind diff.
 [user @ Solvetic ~] $ diff backup1 backup2 
Pasul 7
În cazul creării unui softlink dintr-un fișier din directorul 1
 ln -s file30 file100 
Pasul 8
Utilizarea rsync cu -r nu va sincroniza softlinkul în acest caz pe care îl folosim. Dacă ne uităm la acest moment, vom avea softlink-ul sincronizat.
 rsync -a backup1 / backup2 
NotăDacă nu suntem siguri ce vom sprijini, putem folosi o simulare cu -n și împreună cu -v poate fi foarte util.
 [user @ Solvetic ~] $ rsync -anv backup1 / backup2 trimiterea listei de fișiere incrementale trimise 606 octeți primiți 12 octeți 1236,00 octeți / sec dimensiunea totală este 6 accelerarea este 0,01 (DRY RUN)

14. Alți parametri Rsync


După cum am menționat, aceștia sunt câțiva dintre parametrii suplimentari de utilizat cu rsync pe Linux:

Parametrii Rsync

  • -t, --times: păstrați modificarea timpului
  • -g, --group: păstrați grupurile
  • -o, - proprietar: păstrați proprietarul obiectului
  • -B, --block-size = SIZE: forțează o dimensiune fixă ​​a blocului de control
  • T, --temp-dir = DIR: această valoare creează fișiere temporare în directorul DIR
  • z, --compress: comprimați datele fișierului în timpul transferului
  • -4, --ipv4: utilizați numai IPv4
  • -6, --ipv6: utilizați numai IPv6

Există mult mai multe variabile, dar acestea sunt mai mult decât suficiente pentru a profita la maximum de rsync pe Linux. Am văzut cum să folosim rsync cu cele mai utile opțiuni, împreună cu instrumente precum scripturi cron și bash, python vom avea tot ce ne trebuie pentru a face copiile de rezervă fără a fi nevoie de instrumente terțe.

wave wave wave wave wave