/ / Cum să utilizați rsync pentru a face backup pentru datele dvs. pe Linux

Cum să utilizați rsync pentru a face backup pentru datele dvs. pe Linux

stindard

rsync este un protocol construit pentru sisteme asemănătoare Unixcare oferă o versatilitate incredibilă pentru copierea de rezervă și sincronizarea datelor. Poate fi utilizat local pentru a face copii de siguranță fișiere în diferite directoare sau poate fi configurat pentru a sincroniza pe Internet cu alte gazde.

Poate fi folosit pe sistemele Windows, dar este doardisponibil prin diferite porturi (cum ar fi Cygwin), astfel încât, în acest fel, vom vorbi despre setarea acestuia pe Linux. În primul rând, trebuie să instalăm / actualizăm clientul rsync. La distribuțiile Red Hat, comanda este „yum install rsync”, iar pe Debian este „sudo apt-get install rsync”.

rsync1

Comanda de pe Red Hat / CentOS, după conectarea ca root (rețineți că unele distribuții recente ale Red Hat acceptă metoda sudo).

rsync4

Comanda de pe Debian / Ubuntu.

Utilizarea rsync pentru copii de rezervă locale

În prima parte a acestui tutorial, ne vom întoarcecreează fișierele din Directory1 la Directory2. Ambele directoare sunt pe același hard disk, dar acest lucru ar funcționa exact la fel dacă directoarele ar exista pe două unități diferite. Există mai multe moduri diferite în care putem aborda acest lucru, în funcție de ce tip de copii de rezervă doriți să configurați. În cele mai multe scopuri, linia de cod următoare va fi suficientă:

$ rsync -av --delete /Directory1/ /Directory2/

Codul de mai sus va sincroniza conținutulDirectory1 to Directory2 și nu lăsa diferențe între cele două. Dacă rsync constată că Directory2 are un fișier pe care Directory1 nu îl face, îl va șterge. Dacă rsync găsește un fișier care a fost schimbat, creat sau șters în Directory1, acesta va reflecta aceleași modificări aduse Directory2.

Există o mulțime de comutatoare diferite pe care le puteți utiliza pentru rsync pentru a-l personaliza în funcție de nevoile dvs. specifice. Iată ce codul menționat mai sus spune rsync să facă cu copiile de rezervă:

1. -a = recursiv (recurse în directoare), legături (copiere simboluri ca simboluri), perme (păstrarea permisiunilor), ori (păstrați timpii de modificare), grup (păstrați grupul), proprietar (păstrați proprietarul), păstrați fișierele dispozitivului și păstrați special fișiere.
2. -v = verbose. Motivul pentru care cred că este importantă verbose este acela că puteți vedea exact ce backup face backup. Gândiți-vă la asta: Ce se întâmplă dacă unitatea dvs. de hard disk merge prost și începe să ștergeți fișierele fără cunoștința dvs., atunci rulați scriptul dvs. rsync și împinge aceste modificări în copiile de rezervă, ștergând astfel toate instanțele unui fișier pe care nu ați dorit să îl obțineți scapa de?
3. –Delete = Aceasta indică rsync să ștergeți toate fișierele din Directory2 care nu se află în Directory1. Dacă alegeți să utilizați această opțiune, vă recomand să utilizați și opțiunile verbose, din motivele menționate mai sus.

Folosind scriptul de mai sus, iată ieșirea generată folosind rsync la backup-ul Directory1 la Directory2. Rețineți că, fără comutatorul verbal, nu ați primi astfel de informații detaliate.

rsync2

Imaginea de mai sus ne spune că File1.txt și File2.jpg au fost detectate ca fiind noi sau altfel modificate din copiile existente în Directory2 și astfel au fost salvate. Sfat de tip Noob: observați clapete de final la sfârșitul directoarelor din comanda mea rsync - acestea sunt necesare, asigurați-vă că vă amintiți-le.

Vom trece peste câteva comutatoare mai utile către sfârșitul acestui tutorial, dar amintiți-vă doar că pentru a vedea o listă completă puteți tasta „man rsync” și puteți vedea o listă completă de comutatoare pe care să le utilizați.

Cam asta o acoperă în măsura în care sunt backup-urile localeîngrijorat. După cum puteți spune, rsync este foarte ușor de utilizat. Devine ușor mai complex atunci când îl utilizați pentru a sincroniza date cu o gazdă externă pe Internet, dar vă vom arăta un mod simplu, rapid și sigur de a face acest lucru.

Utilizarea rsync pentru backup-uri externe

rsync poate fi configurat în mai multe moduri diferitepentru backup-uri externe, dar vom trece peste cea mai practică (de asemenea, cea mai simplă și mai sigură) metodă de tunelare rsync prin SSH. Majoritatea serverelor și chiar mulți clienți au deja SSH și poate fi folosit pentru copiile de rezervă rsync. Vă vom arăta procesul de a face ca o mașină Linux să facă backup la alta pe o rețea locală. Procesul ar fi exact același dacă o gazdă ar fi fost pe internet undeva, trebuie doar să rețineți că portul 22 (sau orice port pe care aveți SSH configurat), ar trebui să fie redirecționat pe orice echipament de rețea de pe server.

Pe server (computerul care va primi copiile de siguranță), asigurați-vă că SSH și rsync sunt instalate.

# yum -y instala ssh rsync

# sudo apt-get install ssh rsync

În afară de instalarea SSH și rsync peserver, tot ceea ce trebuie făcut este să configurați depozitele pe serverul în care doriți să fie salvate fișierele și să vă asigurați 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 rula aceeași comandă pentru care am făcut-ofolosind rsync pe un computer local, dar includeți completările necesare pentru tunelarea rsync prin SSH la un server din rețeaua mea locală. Pentru utilizatorul „geek” care se conectează la „192.168.235.137” și folosind aceleași comutatoare ca mai sus (-av –delete), vom rula următoarele:

$ rsync -av –delete -e ssh /Directory1/ geek@192.168.235.137:/Directory2/

Dacă aveți ascultare SSH pe un alt port în afară de 22, ar trebui să specificați numărul portului, cum ar fi în acest exemplu în care folosesc portul 12345:

$ rsync -av –delete -e 'ssh -p 12345' /Directory1/ geek@192.168.235.137:/Directory2/

rsync3

După cum puteți vedea din ecranul de mai sus,ieșirea dată la copierea de rezervă în rețea este cam aceeași ca la backup-ul local, singurul lucru care se schimbă este comanda pe care o utilizați. Observați, de asemenea, că a solicitat o parolă. Aceasta este autentificarea cu SSH. Puteți configura tastele RSA pentru a omite acest proces, care va simplifica, de asemenea, automatizarea rsync.

Automatizarea copiilor de rezervă rsync

Cron poate fi folosit pe Linux pentru a automatiza execuția comenzilor, cum ar fi rsync. Folosind Cron, putem face ca sistemul nostru Linux să ruleze copii de noapte, sau oricât de des doriți să le ruleze.

Pentru a edita fișierul de tabel cron pentru utilizatorul la care sunteți autentificat, executați:

$ crontab -e

Pentru a edita acest fișier, va trebui să vă familiarizați cu vi. Tastați „I” pentru introducere, apoi începeți să editați fișierul tabel cron.

Cron folosește următoarea sintaxă: minutul orei, ora din zi, ziua lunii, luna anului, ziua săptămânii, comanda.

La început poate fi puțin confuz, așa că permiteți-vă să vă dau un exemplu. Următoarea comandă va rula comanda rsync în fiecare seară la 10 PM:

0 22 * * * rsync -av --delete /Directory1/ /Directory2/

Primul „0” specifică minutul orei, iar „22” specifică 10 PM. Din moment ce dorim ca această comandă să fie rulată 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 escape și apoi tastați „: wq” (fără ghilimele) și apăsați Enter. Acest lucru vă va salva modificările în vi.

Cron poate obține mult mai în profunzime decât asta, dara continua despre acest lucru ar fi dincolo de domeniul de aplicare al acestui tutorial. Majoritatea oamenilor vor dori doar o copie de rezervă săptămânală sau zilnică simplă, iar ceea ce am arătat puteți realiza asta cu ușurință. Pentru mai multe informații despre Cron, vă rugăm să consultați paginile de manual.

Alte caracteristici utile

Un alt lucru util pe care îl puteți face este să vă punețicopii de rezervă într-un fișier zip. Va trebui să specificați unde doriți să fie amplasat fișierul zip, apoi să rsync acel director la directorul dvs. de rezervă. De exemplu:

$ zip /ZippedFiles/archive.zip /Directory1/ && rsync -av --delete /ZippedFiles/ /Directory2/

rsync5

Comanda de mai sus preia fișierele de laDirectory1, le introduce în /ZippedFiles/archive.zip și apoi rsyncs acel director la Directory2. Inițial, s-ar putea să credeți că această metodă s-ar dovedi ineficientă pentru copiile de rezervă mari, având în vedere că fișierul zip se va schimba de fiecare dată când se face cea mai mică modificare a unui fișier. Cu toate acestea, rsync transferă doar datele schimbate, deci dacă fișierul dvs. zip este de 10 GB, iar apoi adăugați un fișier text în Directory1, rsync va ști că este tot ce ați adăugat (chiar dacă este într-un zip) și transferă doar câțiva kilobiți de date schimbate

Puteți găsi câteva moduri diferitecriptați copiile de rezervă rsync. Cea mai ușoară metodă este să instalați criptarea pe hard disk în sine (cea la care fișierele dvs. sunt copiate de rezervă). O altă modalitate este să criptați fișierele înainte de a le trimite pe un server de la distanță (sau pe un alt hard disk, oricare ar fi să vă faceți o copie de rezervă). Vom acoperi aceste metode în articole ulterioare.

Indiferent de opțiunile și funcțiile pe care le alegeți, rsync se dovedește a fi unul dintre cele mai eficiente și mai versatile instrumente de backup până în prezent, ba chiar un script rsync simplu vă poate salva de la pierderea datelor.