15 Rsync primjera

15 Rsync Primjera



Prijenos datoteka s jednog mjesta na drugo vrlo je čest zadatak za korisnike Linuxa. U Linuxu su dostupne mnoge opcije za obavljanje ovog zadatka; “rsync” je jedan od njih. Puni oblik 'rsync' je 'Remote Sync'. To je vrlo koristan alat za sinkronizaciju za kopiranje datoteka i mapa s jednog sustava na drugi sustav lokalno ili udaljeno. Ima mnogo više prednosti od ostalih alata za sinkronizaciju. Ovaj je alat instaliran u Linuxu prema zadanim postavkama. Dakle, korisnik ga ne mora instalirati. Prednosti i upotreba naredbe “rsync” prikazane su u ovom vodiču pomoću 15 jednostavnih primjera.

Prednosti naredbe “Rsync”.

  1. 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.
  2. Podržava nepotpuni prijenos.
  3. Zahtijeva manju propusnost jer sažima podatke tijekom prijenosa.
  4. 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šte

Ovdje 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'.

  1. Prenesite jednu datoteku i mapu lokalno
  2. Prenesite više datoteka i mapa lokalno
  3. Prenesite jednu datoteku i mapu na daljinu
  4. Prenesite više datoteka i mapa na daljinu
  5. Prikaz tijeka prijenosa
  6. Komprimirajte podatke tijekom prijenosa
  7. Prijenos s ograničenjem propusnosti
  8. Prenesite datoteke i mape rekurzivno
  9. Prijenos uz ograničenje minimalne veličine
  10. Prijenos uz ograničenje maksimalne veličine
  11. Prijenos datoteka određene vrste
  12. Prikažite razlike između izvorne i odredišne ​​datoteke
  13. Uključite ili isključite datoteke tijekom prijenosa
  14. Sinkronizirajte podatke u suhom načinu rada
  15. 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.txt

Izlaz 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 --napredak

Sljedeć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 tempdir
rsync -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 temp
rsync --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.txt
cat 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.json
rsync -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 temp
rsync -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.

ls
je 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.