- 1. Kako koristiti rsync
- 2. Kako instalirati rsync
- 3. Kopirajte datoteke i kopirajte direktorije pomoću rsync -a
- 4. Kopirajte ili sinkronizirajte udaljene rsync mape ili udaljeni direktorij
- 5. Rsync SSH kako se koristi
- 6. Rsync pokaži napredak prijenosa datoteke ili direktorija
- 7. Uključite ili isključite rsync direktorije
- 8. Rsync brisanje datoteka i direktorija
- 9. Rsync Limit veličina datoteke
- 10. Rsync izbrišite izvorne datoteke ako je prijenos bio uspješan
- 11. Pokrenite rsync bez utjecaja na datoteke
- 12. Ograničite rsync propusnost
- 13. Sigurnosno kopiranje s Rsync -om
- 14. Ostali parametri Rsync
Korištenje naredbi u Linuxu više je nego prirodno jer su one srce Linuxa već dugi niz godina, zato moramo biti svjesni načina na koji koristimo ove naredbe budući da su neke praktične za temeljne zadatke, a druge mogu biti opasni ako njima ne upravljamo ispravno. Jedna od najfunkcionalnijih naredbi za Linux je rsync protokol koji će vam Solvetic detaljno objasniti u ovom vodiču. Pogledajmo prvo što je rsync.
Trenutno održavanje infrastrukture bilo koje veličine bez sigurnosne kopije može se smatrati ludim, disk može otkazati u bilo kojem trenutku i mogli biste izgubiti informacije vrijedne poput računovodstva tvrtke. U ovom ćemo članku govoriti o tome kako koristiti Rsync, jedan od najboljih alata za sigurnosno kopiranje na * nix sustavima. Vidjet ćemo od najosnovnijih do naprednijih primjera sa skriptama i primjerima koje možete primijeniti u svom radnom okruženju. To će biti priručnik za znati koristiti rysnc.
Potreba za istim podacima na različitim mjestima postajala je sve jača, jer je naš radni prostor promjenjiv i želimo imati svoje alate uvijek sa sobom ili čak kao rezervne mjere.
Što je rsync?To je alat otvorenog koda za prijenos datoteka i direktorija s jednog mjesta na drugo. Njegove prednosti se uglavnom temelje na kompresiji informacija koje se šalju, dopušta prijenos putem SSH kanala i prenosi samo datoteke i dijelove datoteka koji su izmijenjeni umjesto ponovnog prijenosa cijele datoteke, nešto slično onome što se događa pri prijenosu razlika u datoteci pod kontrolom verzija Gita.
Naredba rsync (Udaljena sinkronizacija) je naredba razvijena za zadatke kopiranja i sinkronizacije datoteka i direktorija, daljinski ili lokalno na Linux ili UNIX sustavima.
Pomoću ove naredbe možemo napraviti kopije iz:
- Lokalno
- Korištenje udaljene ljuske
- Preko udaljenog demona rsync
Rsync koristiMeđu različitim upotrebama rsync -a su sljedeće:
- Automatsko sigurnosno kopiranje na udaljene poslužitelje ili diskove.
- Daljinska sinkronizacija datoteka i direktorija.
- Uobičajeni prijenos datoteka.
Prednosti Rsync -a
- Brži je od scp (sigurna kopija) jer rsync koristi protokol za prijenos koji omogućuje prijenos samo razlike između datoteka, prvi put kada prenosi cijelu datoteku po drugi put samo promjene koje mogu postojati.
- Dizajniran je za daljinsko sigurnosno kopiranje.
- Podržava kopiranje svih dozvola za datoteke, na primjer, vlasnika, soft grupa i tvrdih veza.
- Upotrijebite kompresiju tijekom slanja datoteka pomoću manje propusnosti.
Rsync ima funkciju delta prijenosa koja omogućuje smanjenje količine podataka koji se šalju kroz mrežu dopuštajući slanje samo razlika između izvornih datoteka i postojećih datoteka na udaljenom odredištu, zato je rsync idealan za izradu sigurnosnih kopija i dupliciranje.
Rsync djeluje u procesu traženja datoteka za prijenos pomoću lqquick checkqq algoritma, koji je zadužen za traženje datoteka koje su pretrpjele neku vrstu izmjene.
Značajke RsyncNeke od njegovih glavnih karakteristika su:
- Integrira funkcije isključivanja opcija slične GNU tar -u
- Ima podršku za kopiranje Linux veza, uređaja, vlasnika, grupa i dozvola
- Dodajte način isključivanja CVS -a koji omogućuje zanemarivanje istih datoteka koje bi CVS zanemario u svojoj funkciji
- Ne zahtijeva privilegije superkorisnika (root)
- Možemo koristiti udaljenu ljusku poput ssh ili rsh
- Omogućuje prijenos datoteka za smanjenje troškova latencije mreže
- Podržava autentificirane ili anonimne demone rsync
- Brži je od scp
Pokazat ćemo kako koristiti rsync i rsync parametre za izvršavanje zadataka kao što su rsync kopiranje samo novih datoteka ili rsync brisanje ciljnih datoteka.
1. Kako koristiti rsync
Sintaksa za korištenje ove naredbe je sljedeća:
odredište resursa opcija rsyncRsync varijablePomoću ove sintakse možemo dodati neke varijable poput:
- -v: detaljni način.
- -r: Ova opcija rekurzivno kopira podatke bez ostavljanja vremenskih oznaka i dopuštenja tijekom procesa.
- -a: način rada datoteke koji omogućuje rekurzivno kopiranje datoteka i čuva simbolične veze, dopuštenja datoteka, vlasništvo korisnika i grupe te vremenske oznake.
- -z: Ova opcija komprimira podatke u datoteci.
- -h: način čitanja ljudi, izlazni brojevi u formatu čitljivom za čovjeka.
Pogledajmo sada neke primjere kako koristiti ovu naredbu. Na kraju vodiča Solvetic će vam dati druge parametre za korištenje rsync na Linuxu.
2. Kako instalirati rsync
Korak 1
U većini trenutnih sustava rsync je zadano instaliran, ali ako nije, možemo izvršiti sljedeće:
yum install rsync (Red Hat - CentOS - Fedora) apt -get install rsync (Debian - Ubuntu)
POVEĆAJTE
Korak 2
U svakom slučaju moramo potvrditi instalaciju rsync, u nekim sustavima poput Ubuntu 20 već dolazi prema zadanim postavkama:
3. Kopirajte datoteke i kopirajte direktorije pomoću rsync -a
Prva upotreba rsync -a je lokalno kopiranje ili sinkronizacija datoteke ili direktorija. Pogledajmo kako kopirati rsync datoteke, kopirati direktorije s rsync -om i sinkronizirati dva direktorija s rsync -om.
Korak 1
Za to ćemo izvršiti sljedeće
rsync -zvh "datoteka" "odredište"
Korak 2
Tamo možemo vidjeti detalje poput:
- Podaci su poslani
- Količina primljenih podataka
- Brzina prijenosa
- Ukupna veličina
Korak 3
Ako se radi o lokalnom kopiranju direktorija, izvršit ćemo sljedeće:
rsync -zvh "imenik" "odredište"
4. Kopirajte ili sinkronizirajte udaljene rsync mape ili udaljeni direktorij
Korak 1
Možemo kopirati ili sinkronizirati datoteke lokalno na udaljeno računalo, za to ćemo koristiti sljedeću sintaksu:
rsync -avz datoteka / [email protected]: / destination /
Korak 2
Kad god koristimo udaljeni IP, moramo unijeti root lozinku navedenog udaljenog računala. Sada, ako ćemo kopirati udaljeni direktorij na naš lokalni poslužitelj, upotrijebit ćemo sljedeću sintaksu:
rsync -azvh [email protected]: / destination / directory /
5. Rsync SSH kako se koristi
SSH (Secure Shell) dodatni je sigurnosni mehanizam za prijenos podataka, što se postiže budući da SSH koristi sigurnu vezu s visoko standardiziranom enkripcijom.
Korak 1
Ako ćemo kopirati lokalnu datoteku na udaljeno računalo sa SSH-om, moramo koristiti opciju "-e" s nazivom protokola koji želite koristiti:
rsync -avzhe ssh [email protected]: / destination / direktorij
Korak 2
Za kopiranje lokalne datoteke na udaljeni poslužitelj koristit ćemo sljedeću sintaksu:
rsync -avzhe ssh "datoteka" [email protected]: / destination /
Korak 3
U udaljenom direktoriju možemo potvrditi da je datoteka ili imenik kopiran:
POVEĆAJTE
6. Rsync pokaži napredak prijenosa datoteke ili direktorija
Ovo je metoda za bolje upravljanje prijenosom, što se postiže parametrom -progress:
rsync -avzhe ssh --progress / source [email protected]: / destination
7. Uključite ili isključite rsync direktorije
Opcije -include i -exclude opcije su koje nam omogućuju uključivanje ili izuzimanje datoteka, a također nam omogućuju da odredimo datoteke ili direktorije koje ćemo uključiti u sinkronizaciju ili isključiti datoteke i mape koje se ne smiju prenositi.
Njegova upotreba je sljedeća:
rsync -avze ssh --include 'Slovo *' --exclude ' *' [email protected]: / destination
8. Rsync brisanje datoteka i direktorija
U slučaju da datoteka ili direktorij nisu u izvoru, ali su već dostupni na odredištu, možemo izbrisati tu datoteku ili imenik tijekom procesa sinkronizacije, za to možemo upotrijebiti -delete kako bismo izbrisali elemente koji nisu na odredišno računalo izvršit ćemo sljedeće:
rsync -avz --delete [email protected]: / odredište
9. Rsync Limit veličina datoteke
Parametrom -max -size možemo naznačiti koja je najveća veličina objekata za prijenos pomoću rsync -a, što pomaže u kontroli udaljenog prostora:
rsync -avzhe ssh --max -size = '300k' / source / [email protected]: / destination
10. Rsync izbrišite izvorne datoteke ako je prijenos bio uspješan
Pomoću varijable -remove-source-files moguće je da su datoteke koje su sinkronizirane u izvoru eliminirane samo ako je cijeli proces bio točan, za to ćemo upotrijebiti sljedeće. Vidimo da je izvorna datoteka izbrisana.
rsync --remove-source-files -zvh "datoteka" / odredište /
11. Pokrenite rsync bez utjecaja na datoteke
Ovo je idealna opcija za ljude koji ne poznaju u potpunosti moć rsynca jer pokazuje što će naredba učiniti, ali ne utječe na podrijetlo, to se postiže, na primjer, parametrom -dry -run. Vidimo da je datoteka još uvijek tu.
rsync --dry-run --remove-source-files -zvh "datoteka" / odredište /
12. Ograničite rsync propusnost
Parametrom -bwlimit bit će moguće definirati koju brzinu mreže rsync treba koristiti za zadatke sinkronizacije, to se postiže na sljedeći način:
rsync --bwlimit = 200 -avzhe ssh / source / [email protected]: / destination
13. Sigurnosno kopiranje s Rsync -om
Ponekad moramo napraviti sigurnosnu kopiju određenih podataka prije nego što napravimo izmjene, a u slučaju greške pri oporavku iz sigurnosne kopije počet ćemo s laboratorijskim sigurnosnim kopiranjem iz jedne mape u drugu. Na ovaj način ćemo stvoriti sigurnosnu kopiju s rsync -om na potpun i siguran način.
Korak 1
Počinjemo provjerom je li rsync instaliran.
[korisnik @ Solvetic ~] $ koji rsync / usr / bin / rsyncKorak 2
Izradit ćemo 2 mape za izvor i odredište datoteka.
mkdir {backup1, backup2}Korak 3
U mapi backup1 stvaramo nekoliko datoteka, u ovom slučaju veličina datoteka nije bitna.
[korisnik @ Solvetic ~] $ touch backup1 / datoteka {1… 75}Korak 4
Direktorij bi trebao imati 75 datoteka. Pravimo sigurnosne kopije.
[korisnik @ Solvetic ~] $ ls backup1 / file1 file14 file19 file23 file28 file32 file37 file41 file46 file50 file50 file55 file6 file64 file69 file73 file10 file15 file2 file24 file29 file33 file33 file38 file42 file47 file51 file50 file60 datoteka65 datoteka7 datoteka74 datoteka11 datotekom16 datoteka20 datotekom25 datotekom25 datotekom3 datotekom34 datotekom4 datotekom4 datotekom48 datotekom52 datotekom16. datoteka57 datoteka61 datoteka61 datoteka66 datoteka70 datoteka75 datoteka12 datoteka17 datoteka21 datoteka21 datoteka26 datoteka30 datoteka30 datoteka35. datoteka4.Korak 5
Koristimo sigurnosnu kopiju datoteka na backup2. Izvor mora završiti s / u protivnom bi kopirao njegovu mapu, a ne sadržaj.
rsync -r backup1 / backup2Korak 6
AKO uđemo u backup2 možemo vidjeti 75 datoteka pa čak možemo provjeriti jesu li to 2 identična direktorija koristeći diff.
[korisnik @ Solvetic ~] $ diff backup1 backup2Korak 7
U slučaju stvaranja softlink -a iz datoteke u direktoriju 1
ln -s datoteka30 datoteka100Korak 8
Korištenje rsync s -r neće sinkronizirati softlink u ovom slučaju koji koristimo. Ako pogledamo ovo vrijeme, softlink će biti sinkroniziran.
rsync -rezervna kopija1 / sigurnosna kopija2BilješkaAko nismo sigurni što ćemo podržati, možemo upotrijebiti simulaciju s -n, a zajedno s -v to može biti vrlo korisno.
[korisnik @ Solvetic ~] $ rsync -anv backup1 / backup2 slanje inkrementalnog popisa datoteka poslano 606 bajtova primljeno 12 bajtova 1236,00 bajtova / sek ukupna veličina je 6 ubrzanje je 0,01 (DRY RUN)
14. Ostali parametri Rsync
Kao što smo spomenuli, ovo su neki od dodatnih parametara za korištenje s rsync na Linuxu:
Rsync parametri
- -t, --times: zadrži promjenu vremena
- -g, --group: zadrži grupe
- -o, --owner: zadržite vlasnika objekta
- -B, --block-size = SIZE: forsiranje fiksne veličine bloka kontrolne sume
- T, --temp-dir = DIR: ova vrijednost stvara privremene datoteke u direktoriju DIR
- z, --compress: komprimira podatke datoteke tijekom prijenosa
- -4, --ipv4: koristite samo IPv4
- -6, --ipv6: koristite samo IPv6
Postoji još mnogo varijabli, ali one su više nego dovoljne da izvučete maksimum iz rsync -a na Linuxu. Vidjeli smo kako koristiti rsync s najkorisnijim opcijama, zajedno s alatima kao što su cron i bash skripte, python imat ćemo sve što nam je potrebno za izradu sigurnosnih kopija bez potrebe za alatima trećih strana.