27Jun
rsync este un protocol construit pentru sistemele de tip Unix care oferă versatilitate incredibilă pentru backup și sincronizarea datelor. Poate fi folosit local pentru a face copii de siguranță ale fișierelor la diferite directoare sau poate fi configurat să se sincronizeze pe Internet cu alte gazde.
Poate fi folosit pe sisteme Windows, dar este disponibil numai prin intermediul unor porturi diferite( cum ar fi Cygwin), asa ca in acest mod vom vorbi despre instalarea pe Linux.În primul rând, trebuie să instalați / actualizați clientul rsync. Pe distribuțiile Red Hat, comanda este "yum install rsync" iar pe Debian este "sudo apt-get install rsync".
Comanda pe Red Hat / CentOS, după ce sa logat ca root( rețineți că unele distribuții recente ale Red Hatsusține metoda sudo).
Comanda pe Debian / Ubuntu.
Utilizarea rsync pentru backup-urile locale
În prima parte a acestui tutorial, vom face copii de rezervă ale fișierelor de la Directory1 la Directory2.Ambele directoare se află pe același hard disk, dar acest lucru ar funcționa exact la fel în cazul în care directoarele au existat pe două unități diferite. Există mai multe moduri diferite prin care putem aborda acest lucru, în funcție de tipul de copii de rezervă pe care doriți să le configurați.În majoritatea scopurilor, este suficientă următoarea linie de cod:
$ rsync -av --delete /Directory1/ /Directory2/
Codul de mai sus va sincroniza conținutul directorului 1 cu directorul 2 și nu va lăsa diferențe între cele două.Dacă rsync află că Directory2 are un fișier pe care Directory1 nu îl va șterge. Dacă rsync găsește un fișier care a fost modificat, creat sau șters în directorul 1, acesta va reflecta aceleași modificări în directorul 2.
Există o mulțime de switch-uri diferite pe care le puteți utiliza pentru rsync pentru ao personaliza în funcție de nevoile dvs. specifice. Iată ce codul menționat anterior spune rsync în legătură cu copiile de rezervă:
1. -a = recursiv( recurs în directoare), linkuri( copierea simbolurilor ca simbolinks), permisiunile( conservați permisiunile), ori( păstrarea timpilor de modificare)păstrați grupul), proprietarul( păstrați proprietarul), păstrați fișierele dispozitivului și păstrați fișierele speciale.
2. -v = verbose. Motivul pentru care cred că este mai important este așa încât să puteți vedea exact ceea ce rsync face backup. Gândiți-vă la acest lucru: Ce se întâmplă dacă hard disk-ul dvs. este rău și începe să ștergeți fișierele fără cunoștințele dvs., apoi executați scriptul rsync și împinge aceste modificări în copiile de rezervă, ștergând astfel toate instanțele unui fișier pe care nu ați dori să-l primițiscapa de?
3. -delete = Acest lucru îi spune lui rsync să ștergă orice fișiere care sunt în directorul 2 care nu sunt în directorul 1.Dacă alegeți să utilizați această opțiune, vă recomand să utilizați și opțiunile detaliate, din motivele menționate mai sus.
Folosind scriptul de mai sus, aici este ieșirea generată prin utilizarea rsync pentru copierea de rezervă a directorului1 în directorul2.Rețineți că fără comutatorul verbose nu veți primi astfel de informații detaliate.
Imaginea de mai sus ne indică faptul că fișierul File1.txt și fișierul File2.jpg au fost detectați fie ca fiind noi, fie ca au fost modificați în alt mod față de copiile existente în directorul 2, și astfel au fost copiate de rezervă.Sfat tip Noob: Observați șuvițele de la capăt de la capătul directoarelor din comanda mea rsync - acestea sunt necesare, asigurați-vă că le amintiți.
Vom trece peste câteva comutatoare la sfârșitul acestui tutorial, dar amintiți-vă că pentru a vedea o listă completă puteți scrie "man rsync" și puteți vedea o listă completă de comutatoare de utilizat.
Cât despre asta o acoperă în ceea ce privește copiile de rezervă locale. După cum puteți spune, rsync este foarte ușor de utilizat. Ea devine ceva mai complexă atunci când se utilizează pentru a sincroniza datele cu o gazdă externă pe Internet, dar vă vom arăta o modalitate simplă, rapidă și sigură de a face acest lucru.
Utilizarea rsync pentru backup-uri externe
rsync poate fi configurat în mai multe moduri pentru backup-uri externe, dar vom trece peste metoda cea mai practică( și cea mai ușoară și cea mai sigură) de tunneling rsync prin SSH.Cele mai multe servere și chiar mulți clienți au deja SSH și pot fi utilizați pentru backup-urile dvs. rsync. Vă vom arăta procesul de a face ca o mașină Linux să facă backup la o altă rețea într-o rețea locală.Procesul ar fi exact același lucru dacă o gazdă ar fi fost pe internet undeva, doar rețineți că portul 22( sau portul pe care îl configurați SSH) va trebui să fie trimis pe orice echipament de rețea de pe partea serverului.
Pe server( computerul care va primi backup-urile), asigurați-vă că SSH și rsync sunt instalate.
# yum -y instalați ssh rsync
# sudo apt-get instalare ssh rsync
În afară de instalarea SSH și rsync pe server, tot ce trebuie într-adevăr să faceți este să configurați arhivele de pe server unde doriți fișierele suportateup și asigurați-vă că SSH este blocat. Asigurați-vă că utilizatorul pe care intenționați să îl utilizați are o parolă complexă și poate fi de asemenea o idee bună să comutați portul pe care îl ascultă SSH( implicit este 22).
Vom executa aceeași comandă pe care am făcut-o pentru utilizarea rsync pe un computer local, dar vom include și adăugările necesare pentru tunneling rsync prin SSH către un server din rețeaua locală.Pentru utilizator "geek" care se conectează la "192.168.235.137" și folosind aceleași comutatoare ca mai sus( -av -delete) vom rula următoarele:
$ rsync -a -delete -e ssh /Directory1/ [email protected]: /Directory2/
Dacăaveți SSH care ascultă pe un alt port decât 22, va trebui să specificați numărul portului, cum ar fi în acest exemplu unde folosesc portul 12345:
$ rsync -av -delete -e 'ssh -p 12345' /Directory1/ [email protected]: /Directory2/
După cum puteți vedea din captura de ecran de mai sus, ieșirea dată atunci când se face copierea de rezervă în rețea este aproape la fel ca atunci când se face backup local, singurul lucru care se schimbă este comanda pe care o utilizați. Observați, de asemenea, că a solicitat o parolă.Aceasta este pentru autentificare cu SSH.Puteți configura chei RSA pentru a sări peste acest proces, ceea ce va simplifica, de asemenea, automatizarea rsync.
Automatizarea backup-urilor rsync
Cron poate fi folosit pe Linux pentru a automatiza executarea comenzilor, cum ar fi rsync. Folosind Cron, putem avea sistem de operare Linux care rulează backup-uri pe timp de noapte, ori de multe ori doriți ca acestea să ruleze.
Pentru a edita fișierul de tabelă cron pentru utilizatorul în care sunteți conectat ca, rulați:
$ crontab -e
Va trebui să fiți familiarizați cu vi pentru a edita acest fișier. Introduceți "I" pentru inserare și apoi începeți să editați fișierul tabelului cron.
Cron folosește următoarea sintaxă: minut de oră, oră din zi, zi din lună, lună a anului, zi din săptămână, comandă.
La început poate fi puțin confuz, așa că lasă-mă să vă dau un exemplu. Următoarea comandă va executa comanda rsync în fiecare seară la ora 22:00:
0 22 * * * rsync -av - șterge /Directory1/ /Directory2/
Primul "0" specifică minutul de oră și "22" specifică 10 PM.Deoarece vrem ca această comandă să ruleze zilnic, vom lăsa restul câmpurilor cu asteriscuri și apoi vom lipi comanda rsync.
După ce ați terminat configurarea Cron, apăsați tasta escape, apoi tastați ": wq"( fără ghilimele) și apăsați enter. Astfel veți salva modificările în vi.
Cron poate obține mult mai mult în profunzime decât acest lucru, dar pentru a merge mai departe despre aceasta ar fi dincolo de sfera de aplicare a acestui tutorial. Majoritatea oamenilor vor dori doar o copie de rezervă săptămânală sau zilnică simplă, iar ceea ce am arătat că puteți realiza cu ușurință acest lucru. Pentru mai multe informații despre Cron, consultați paginile manuale.
Alte caracteristici utile
Un alt lucru util pe care îl puteți face este să puneți copii de rezervă într-un fișier zip. Va trebui să specificați unde doriți să fie plasat fișierul zip și apoi să rsync acel director în directorul dvs. de rezervă.De exemplu:
$ zip /ZippedFiles/ archive.zip /Directory1/ &rsync -av --delete /ZippedFiles/ /Directory2/
Comanda de mai sus ia fișierele din Director1, le pune în /ZippedFiles/ archive.zip și apoi rsyncs acel director în Directory2.Inițial, s-ar putea să vă gândiți că această metodă s-ar dovedi ineficientă pentru backup-urile mari, având în vedere că fișierul zip se va schimba de fiecare dată când se face o modificare cea mai mică la un fișier. Cu toate acestea, rsync transferă numai datele modificate, deci dacă fișierul zip este de 10 GB și apoi adăugați un fișier text în directorul 1, rsync va ști că este tot ce ați adăugat( chiar dacă este în zip) și transferați numai câteva kilobițide date modificate.
Există câteva moduri diferite în care puteți cripta backupurile dvs. rsync. Cea mai ușoară metodă este să instalați criptarea pe hard disk-ul însuși( cel cu care sunt salvate fișierele).O altă modalitate este de a cripta fișierele înainte de a le trimite la un server de la distanță( sau alt hard disk, indiferent de ce se întâmplă să copiați).Vom acoperi aceste metode în articolele ulterioare.
Indiferent de opțiunile și caracteristicile pe care le alegeți, rsync se dovedește a fi unul dintre cele mai eficiente și versatile instrumente de backup de până acum și chiar și un simplu script rsync vă poate salva de pierderea datelor.