Prednosti naredbe “Rsync”.
- Brži je od ostalih alata jer kopira samo one datoteke s izvorne lokacije na odredišnu lokaciju koje su izmijenjene ili ne postoje na odredišnoj lokaciji.
- Podržava nepotpuni prijenos.
- Zahtijeva manju propusnost jer sažima podatke tijekom prijenosa.
- Smanjuje troškove prijenosa jer se manje važni podaci mogu prenositi bez enkripcije.
Sintaksa
Sintaksa naredbe “rsync” dana je u nastavku:
rsync [Opcija] Izvorno odredišteOvdje izvorni i odredišni putovi mogu biti lokalni ili udaljeni. Različite vrste opcija mogu se koristiti s ovom naredbom za različite svrhe.
Korisne opcije naredbe “Rsync”.
Neke najčešće korištene opcije naredbe “rsync” objašnjene su u nastavku:
Opcija | Svrha |
---|---|
-S | Koristi se za komprimiranje podataka tijekom prijenosa. |
-r | Koristi se za rekurzivnu sinkronizaciju podataka bez zadržavanja dopuštenja za datoteke. |
-a | Koristi se za rekurzivnu sinkronizaciju podataka zadržavanjem svih dopuštenja za datoteke. |
-b | Koristi se za čuvanje sigurnosne kopije podataka tijekom prijenosa. |
-u | Koristi se za prikaz izlaza u verbose formatu. |
-str | Koristi se za prikaz tijeka prijenosa. |
-n | Koristi se za provjeru radi li sinkronizacija ili ne prije prijenosa datoteka ili mapa. |
Popis od 15 primjera 'Rsync'.
- Prenesite jednu datoteku i mapu lokalno
- Prenesite više datoteka i mapa lokalno
- Prenesite jednu datoteku i mapu na daljinu
- Prenesite više datoteka i mapa na daljinu
- Prikaz tijeka prijenosa
- Komprimirajte podatke tijekom prijenosa
- Prijenos s ograničenjem propusnosti
- Prenesite datoteke i mape rekurzivno
- Prijenos uz ograničenje minimalne veličine
- Prijenos uz ograničenje maksimalne veličine
- Prijenos datoteka određene vrste
- Prikažite razlike između izvorne i odredišne datoteke
- Uključite ili isključite datoteke tijekom prijenosa
- Sinkronizirajte podatke u suhom načinu rada
- Izbrišite izvorne datoteke i mape nakon prijenosa
Prenesite jednu datoteku i mapu lokalno
Pokrenite naredbu “ls” za prikaz popisa datoteka i mapa trenutne lokacije. Zatim pokrenite naredbu “rsync” za lokalni prijenos datoteke “employees.txt” u datoteku “employees_copy.txt”. Ponovno pokrenite naredbu “ls” kako biste provjerili je li datoteka ispravno prenesena ili ne.
$ ls
$ rsync zaposlenih.txt zaposleni_copy.txt
$ ls
Sljedeći izlaz pokazuje da je datoteka 'employee.txt' uspješno prenesena:
Pretpostavimo da se sadržaj temp mape treba prenijeti u tempdir mapu u kojoj datoteka 'courses.txt' postoji u obje mape. Pokrenite naredbu “ls temp” da provjerite sadržaj privremene mape. Zatim pokrenite naredbu “cat temp/courses.txt” da provjerite sadržaj ove datoteke. Zatim pokrenite naredbu “ls tempdir” da provjerite sadržaj mape tempdir. Zatim pokrenite naredbu “cat tempdir/courses.txt” da provjerite sadržaj ove datoteke.
$ je temp
$ cat temp/courses.txt
$ lstempdir
$ cat tempdir/courses.txt
Izlaz pokazuje da se sadržaj datoteke 'courses.txt' u mapama temp i tempdir malo razlikuje, a datoteka 'courses.txt' u mapi temp sadrži više podataka od datoteke 'courses.txt' u mapi tempdir .
Pokrenite sljedeću naredbu za prijenos sadržaja temp mape u tempdir mapu i provjerite sadržaj datoteke “courses.txt” u tempdir mapi kako biste potvrdili da je datoteka pravilno ažurirana ili ne:
$ rsync -a temp/ tempdir/$ lstempdir
$ cat tempdir/courses.txt
Sljedeći izlaz pokazuje da je sadržaj temp mape ispravno prenesen u tempdir mapu i da je sadržaj datoteke 'courses.txt' tempdir mape ispravno ažuriran:
Prenesite više datoteka i mapa lokalno
Naredba “rsync” može se koristiti za lokalni prijenos više datoteka i mapa. Pokrenite sljedeću naredbu za prijenos datoteka 'ping1.bash' i 'ping2.bash' u mapu tempdir i provjerite sadržaj mape tempdir nakon prijenosa. Opcija -v koristi se s naredbom “rsync” za prikaz izlaza u verbose formatu:
$ rsync -v ping1.bash ping2.bash tempdir/$ lstempdir
Sljedeći izlaz pokazuje da je više datoteka ispravno preneseno u mapu tempdir:
Pokrenite sljedeće naredbe da biste provjerili sadržaj mapa temp, tempdir i test i prenijeli sadržaj mape test i tempdir u mapu temp:
$ je temp$ lstempdir
$ls test
$ rsync -av test/ tempdir/ temp/
$ je temp
Izlaz pokazuje da je sadržaj mape test i tempdir uspješno prenesen u mapu temp. Datoteke “customers.csv”, “ping1.bash” i “ping2.bash” dodaju se kao nove datoteke u privremenu mapu:
Prenesite jednu datoteku i mapu na daljinu
Morate instalirati i konfigurirati SSH poslužitelj na udaljenoj lokaciji za prijenos datoteka i mapa na daljinu. Možete provjeriti ovo tutorial za konfiguraciju SSH poslužitelja.
Pokrenite sljedeću naredbu da provjerite veličinu datoteke 'courses.txt' trenutne lokacije:
ls -la courses.txtIzlaz pokazuje da je veličina datoteke 'courses.txt' 65 bajtova:
Pokrenite sljedeću naredbu za prijenos 'courses.txt' u /početna/ubuntu/tečajevi/ mapa udaljene lokacije, ubuntu@192.168.0.101. Prije prijenosa datoteke morate unijeti root lozinku udaljenog računala:
rsync -v tečajevi.txt ubuntu@192.168.0.101:/home/ubuntu/tečajevi/Sljedeći izlaz pokazuje da je datoteka 'courses.txt' ispravno prenesena na udaljeno računalo i da je veličina datoteke 65 bajtova:
Pokrenite sljedeću naredbu za prijenos privremene mape u /početna/ubuntu/tečajevi/ mapa udaljene lokacije, ubuntu@192.168.0.101. Morate unijeti root lozinku udaljenog stroja prije prijenosa datoteke kao i prethodna naredba.
rsync -av temp/ ubuntu@192.168.0.101:/home/ubuntu/courses/Sljedeći izlaz pokazuje da je sadržaj privremene mape pravilno prenesen na udaljeni stroj:
Prenesite više datoteka i mapa na daljinu
Sljedeća naredba “rsync” prenosi datoteke “customers.csv” i “department.json” u /početna/Ubuntu/datoteke/ mapa udaljene lokacije, ubuntu@192.168.0.101.
rsync -av kupci.csv department.json ubuntu@192.168.0.101:/home/ubuntu/files/Sljedeći izlaz pokazuje da je više datoteka uspješno preneseno na udaljenu lokaciju:
Sljedeća naredba 'rsync' prenosi sadržaj privremenih i testnih mapa i datoteke 'department.json' u /početna/Ubuntu/datoteke/ mapa udaljene lokacije, ubuntu@192.168.0.101.
rsync -av temp/ test/ department.json ubuntu@192.168.0.101:/home/ubuntu/files/Sljedeći izlaz pokazuje da je sadržaj višestrukih mapa uspješno prenesen na udaljenu lokaciju:
Prikaz tijeka prijenosa
Pokrenite naredbu “rsync” s opcijom –progress za prijenos sadržaja mape tempdir u mapu temp_copy s informacijama o napretku.
rsync -a tempdir/ temp_copy --napredakSljedeći izlaz pokazuje da je direktorij temp_copy stvoren lokalno i da je sadržaj mape tempdir uspješno prenesen u mapu temp_copy:
Komprimirajte podatke tijekom prijenosa
Pokrenite sljedeću naredbu 'rsync' s opcijom –z za komprimiranje i lokalni prijenos tempdir direktorija u testni direktorij:
rsync -za tempdir/test/Sljedeći izlaz pokazuje da je komprimirani direktorij uspješno prenesen lokalno:
Prijenos s ograničenjem propusnosti
Pokrenite sljedeću naredbu “rsync” s opcijom –bwlimit s vrijednošću 100 za lokalni prijenos datoteke /etc/passwd u privremenu mapu:
rsync -v --bwlimit=100 etc/passwd temp/Sljedeći izlaz pokazuje da je passwd datoteka uspješno prenesena:
Prenesite datoteku i mapu rekurzivno
Pokrenite sljedeću naredbu “rsync” s opcijom –rv za lokalni prijenos testne mape u mapu test_bak:
rsync -rv test/ test_bak/Sljedeći izlaz pokazuje da je testna mapa uspješno prebačena u test_bak mapu:
Prijenos uz ograničenje minimalne veličine
Prijenos datoteka i mapa pomoću naredbe 'rsync' može se ograničiti pomoću opcije –min-size za postavljanje ograničenja minimalne veličine za prijenos datoteka i mapa. Pokrenite sljedeću naredbu “ls -la tempdir” da provjerite veličinu svake datoteke i mape u ovoj mapi. Zatim pokrenite naredbu “rsync” za prijenos sadržaja mape tempdir u mapu tempdir_bak s ograničenjem minimalne veličine.
ls -la tempdirrsync -av --min-size='245B' tempdir/tempdir_bak
Sljedeći izlaz pokazuje da u mapi tempdir postoje dvije datoteke koje odgovaraju minimalnoj veličini. To su “ping1.bash” (248 bajtova) i “test.txt” (34504 bajtova). Ove datoteke se prenose u mapu tempdir_bak, a ostale datoteke u mapi tempdir se izostavljaju:
Prijenos uz ograničenje maksimalne veličine
Prijenos datoteka i mapa pomoću naredbe 'rsync' može se ograničiti pomoću opcije –max-size za postavljanje ograničenja maksimalne veličine datoteka i mapa za prijenos. Pokrenite sljedeću naredbu “ls -la temp” da provjerite veličinu svake datoteke i mape u ovoj mapi. Zatim pokrenite naredbu “rsync” za prijenos sadržaja temp mape u temp_bak mapu s maksimalnim ograničenjem veličine.
ls -la temprsync --max-size='250B' temp/ temp_bak/
Sljedeći izlaz pokazuje da u privremenoj mapi postoje četiri datoteke koje odgovaraju maksimalnom ograničenju veličine. To su “courses.txt” (65 bajtova), “employees.csv” (361 bajt), “ping1.bash” (248 bajtova) i “ping2.bash” (244 bajta). Ove datoteke se prenose u mapu temp_bak, a ostale datoteke u mapi temp se izostavljaju:
Prijenos datoteka određene vrste
Vrsta datoteke koja će se prenijeti može se postaviti spominjanjem ekstenzije datoteke u naredbi “rsync”. Pokrenite sljedeću naredbu “rsync” za prijenos svih tekstualnih datoteka iz privremene mape u mapu mydir. Ovdje je ekstenzija tekstualne datoteke označena pomoću '*.txt':
rsync -v temp/*.txt mydir/Sljedeći izlaz pokazuje da su dvije tekstualne datoteke, “courses.txt” i “test.txt”, prebačene u mapu mydir, a ostale datoteke u mapi temp su izostavljene:
Prikažite razlike između izvorne i odredišne datoteke
Kada se datoteke ili mape prenose s jedne lokacije na drugu lokalno ili udaljeno, obje lokacije mogu sadržavati iste datoteke ili mape. Razlike između izvora i odredišta tijekom prijenosa mogu se ispitati pomoću opcije -i s naredbom “rsync”. Pokrenite sljedeće 'cat' naredbe za provjeru sadržaja izvorne i odredišne datoteke prije prijenosa. Ovdje se datoteka “courses.txt” prenosi u privremenu mapu.
mačji tečajevi.txtcat temp/courses.txt
rsync -avi tečajevi.txt temp/
Sljedeći rezultat pokazuje da se datoteka 'courses.txt' izvora i odredišta malo razlikuju. Izlaz naredbe “rsync” pokazuje razliku između datoteka:
Sinkronizirajte podatke u suhom načinu rada
Ako želite znati koje se datoteke i mape prenose naredbom “rsync” prije stvarnog prijenosa, bolje je pokrenuti naredbu “rsync” s opcijom –dry-run ili opcijom –n. Kada se naredba “rsync” izvrši s ovom opcijom, ona provjerava koje su datoteke ili mape kopirane iz izvorne mape u odredišnu mapu, ali zadržava odredišnu mapu nepromijenjenom. Pokrenite datoteku 'ls –la department.json' da provjerite veličinu datoteke. Zatim pokrenite naredbu “rsync” s načinom –dry-run kako biste provjerili prijenos “department.json” u privremenu mapu.
ls -la odjel.jsonrsync -v --dry-run department.json temp/
Sljedeći izlaz pokazuje da je veličina datoteke 'department.json' 1172 bajta. Veličina datoteke pokazuje 1172 bajta nakon izvršavanja naredbe “rsync” s opcijom –dry-run:
Uključite ili isključite datoteke tijekom prijenosa
Možete filtrirati vrstu datoteke u trenutku prijenosa s izvorne lokacije na odredišnu lokaciju pomoću opcija –include i –exclude. Opcija “optionsinclude” koristi se za definiranje ekstenzije onih datoteka koje će se prenijeti s izvora na odredište. Opcija –exclude koristi se za definiranje ekstenzije onih datoteka koje se neće prenijeti s izvora na odredište.
Pokrenite sljedeću mapu 'ls temp' da provjerite sadržaj privremene mape. Zatim pokrenite naredbu “rsync” s opcijama –include i –exclude. Prema naredbi, sve CSV datoteke iz privremene mape prenose se u mapu s datotekama, a sve tekstualne datoteke iz privremene mape izostavljaju se u trenutku prijenosa. Zatim pokrenite naredbu “ls files” da provjerite koje su datoteke prebačene iz privremene mape u mapu s datotekama.
je temprsync -a temp/ files/ --include=*.csv --exclude=*.txt
ls datoteke
Sljedeći izlaz pokazuje da privremena mapa sadrži dvije CSV datoteke, dvije tekstualne datoteke i dvije BASH datoteke. Mapa s datotekama je prazna prije prijenosa i prenose se dvije CSV datoteke i dvije BASH datoteke:
Izbrišite izvorne datoteke i mape nakon prijenosa
U prethodnim svim naredbama “rsync”, izvorne datoteke i mape ostaju na izvornoj lokaciji nakon prijenosa na odredišnu lokaciju. Ali ponekad je potrebno trajno prenijeti datoteke i mape na odredišnu lokaciju. Ovaj se zadatak može obaviti pomoću opcije –remove-source-files s naredbom “rsync”. Pokrenite naredbu “ls” da provjerite sve datoteke i mape na trenutnoj lokaciji. Pokrenite naredbu “ls temp” da provjerite datoteke i mape u privremenoj mapi. Zatim pokrenite naredbu “rsync” s opcijom –remove-source-files za brisanje datoteka i mapa izvorne lokacije nakon dovršetka prijenosa. Ponovno pokrenite naredbu “ls” da provjerite je li izvorna datoteka uklonjena s izvorne lokacije ili ne.
lsje temp
rsync zaposleni.csv temp/ --remove-source-files
ls
Sljedeći izlaz pokazuje da se datoteka 'employees.csv' trenutne lokacije prenosi u privremenu mapu, a datoteka 'employees.csv' uklanja se s izvorne lokacije nakon prijenosa:
Zaključak
“Rsync” je vrlo koristan alat Linuxa koji olakšava zadatak prijenosa datoteka i mapa s jednog mjesta na drugo mjesto korištenjem različitih opcija. Metode korištenja naredbe “rsync” za prijenos datoteka i mapa s jedne lokacije na drugu kompresijom, postavljanjem veličine datoteka i mapa, postavljanjem vrste datoteke, postavljanjem ograničenja propusnosti itd. prikazane su u 15 jednostavnih primjera ovaj vodič. Ovaj vodič pomaže korisnicima Linuxa da pravilno upoznaju osnovne upotrebe naredbe 'rsync' u Linuxu.