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 sistemele 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 v-ați înregistrat ca root (rețineți că unele distribuții recente ale Red Hat suportă metoda sudo).
Comanda pe Debian / Ubuntu.
În prima parte a acestui tutorial, vom face copii de rezervă ale fișierelor de la Director1 la Director2. 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 / director1 / / director2 /
Codul de mai sus va sincroniza conținutul directorului 1 cu directorul 2 și nu va lăsa nici o diferență între cele două. Dacă rsync află că Directory2 are un fișier pe care Directory1 nu îl are, î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 comutatoare diferite pe care le puteți utiliza pentru rsync pentru ao personaliza în funcție de nevoile dvs. specifice. Iată ce codul menționat mai sus spune rsync în legătură cu copiile de rezervă:
1. -a = recursive (recuperarea în directoare), link-uri (copierea simbolurilor ca simbolinks), permisiuni (conservați permisiunile), timpi (păstrarea timpilor de modificare), grup (conservare grup), proprietar (conservare proprietar) păstrarea fișierelor 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ți scapa de?
3. -delete = Acest lucru îi spune lui rsync să ștergă orice fișiere care sunt în Director2 care nu sunt în Director1. 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, iată rezultatul generat prin utilizarea rsync pentru a copia directorul Directory1 în directorul 2. Rețineți că fără comutatorul verbose nu veți primi astfel de informații detaliate.
Imaginea de mai sus ne arată 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 rețineț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.
Asta se referă la acesta î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.
rsync poate fi configurat în mai multe moduri pentru backup-uri externe, dar vom trece peste metoda cea mai practică (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 (calculatorul care va primi copiile de rezervă), asigurați-vă că sunt instalate SSH și rsync.
# yum -y instalați ssh rsync
# sudo apt-get instala ssh rsync
În afară de instalarea SSH și rsync pe server, tot ce trebuie într-adevăr să faceți este să configurați depozitele de pe server unde doriți ca fișierele să fie susținute ș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 utilizatorul "geek" care se conectează la "192.168.235.137" și folosind aceleași switch-uri ca mai sus (-av -delete) vom rula următoarele:
$ rsync -a -delete -e ssh / Director1 / [email protected]: / Directory2 /
Dacă aveți SSH de ascultare pe un alt port decât 22, va trebui să specificați numărul de port, cum ar fi în acest exemplu în cazul în care am folosi portul 12345:
$ rsync -a -delete -e 'ssh -p 12345' / Directory1 / [email protected]: / Directory2 /
Așa cum puteți vedea din captura de ecran de mai sus, ieșirea dată atunci când copiați backup în rețea este aproape la fel ca atunci când faceți copii de rezervă la nivel 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.
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ă copii de rezervă pe timpul nopții sau oricum doriți ca ei să ruleze.
Pentru a edita fișierul tabelului 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ă: minutul din oră, ora din zi, ziua lunii, luna anului, ziua săptămânii, comanda.
Poate fi un pic confuz la început, 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 --delete / director1 / / director2 /
Primul "0" specifică minutul de oră, iar "22" indică ora 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 de evacuare, apoi tastați ": wq" (fără citate) și apăsați enter. Astfel veți salva modificările în vi.
Cron poate obține mai mult în profunzime decât acest lucru, dar pentru a continua, ar fi dincolo de scopul 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.
Un alt lucru util pe care îl puteți face este să puneți backup-urile î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 /ZipFiles/archive.zip / director1 / && rsync -av --delete / zipfiles / / director2 /
Comanda de mai sus ia fișierele din directorul 1, le pune în /Zipfilfiles/archive.zip și apoi rsyncs acel director în Directory2. Inițial, s-ar putea să credeț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 dvs. zip este de 10 GB și apoi adăugați un fișier text în directorul 1, rsync va ști că tot ce ați adăugat (chiar dacă este în zip) și transferați doar câteva kilobyte de 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.