15 primerov Rsync

15 Primerov Rsync



Prenos datotek z ene lokacije na drugo je zelo pogosta naloga za uporabnike Linuxa. Za to nalogo je v Linuxu na voljo veliko možnosti; 'rsync' je eden izmed njih. Polna oblika »rsync« je »Remote Sync«. Je zelo uporabno sinhronizacijsko orodje za lokalno ali oddaljeno kopiranje datotek in map iz enega sistema v drug sistem. Ima veliko več prednosti kot druga orodja za sinhronizacijo. To orodje je privzeto nameščeno v sistemu Linux. Uporabniku torej ni treba namestiti. Prednosti in uporaba ukaza »rsync« so prikazane v tej vadnici s 15 preprostimi primeri.

Prednosti ukaza “Rsync”.

  1. Je hitrejše od drugih orodij, ker kopira samo tiste datoteke iz izvorne lokacije na ciljno lokacijo, ki so spremenjene ali ne obstajajo na ciljni lokaciji.
  2. Podpira nepopoln prenos.
  3. Zahteva manjšo pasovno širino, ker stisne podatke med prenosom.
  4. Zmanjšuje stroške prenosa, ker se manj pomembni podatki lahko prenašajo brez šifriranja.

Sintaksa

Sintaksa ukaza »rsync« je podana v naslednjem:

rsync [Možnost] Izvorni cilj

Tukaj sta lahko izvorna in ciljna pot lokalna ali oddaljena. S tem ukazom lahko za različne namene uporabite različne vrste možnosti.







Uporabne možnosti ukaza “Rsync”.

Nekatere pogosto uporabljene možnosti ukaza »rsync« so razložene v nadaljevanju:



Možnost Namen
-Z Uporablja se za stiskanje podatkov med prenosom.
-r Uporablja se za rekurzivno sinhronizacijo podatkov brez ohranjanja kakršnih koli dovoljenj za datoteke.
-a Uporablja se za rekurzivno sinhronizacijo podatkov z ohranjanjem vseh dovoljenj za datoteke.
-b Uporablja se za varnostno kopijo podatkov med prenosom.
-in Uporablja se za prikaz izhoda v podrobni obliki.
-str Uporablja se za prikaz poteka prenosa.
-n Uporablja se za preverjanje, ali sinhronizacija deluje ali ne, preden prenesete datoteke ali mape.

Seznam 15 primerov »Rsync«.

  1. Lokalno prenesite posamezno datoteko in mapo
  2. Lokalno prenesite več datotek in map
  3. Prenesite posamezno datoteko in mapo na daljavo
  4. Prenesite več datotek in map na daljavo
  5. Prikaži napredek prenosa
  6. Stisnite podatke med prenosom
  7. Prenos z omejitvijo pasovne širine
  8. Rekurzivno prenesite datoteke in mape
  9. Prenos z omejitvijo najmanjše velikosti
  10. Prenos z omejitvijo največje velikosti
  11. Prenesite datoteke določene vrste
  12. Prikažite razlike med izvorno in ciljno datoteko
  13. Vključite ali izključite datoteke med prenosom
  14. Sinhronizirajte podatke v suhem načinu
  15. Po prenosu izbrišite izvorne datoteke in mape

Lokalno prenesite posamezno datoteko in mapo

Zaženite ukaz 'ls', da prikažete seznam datotek in map na trenutni lokaciji. Nato zaženite ukaz »rsync«, da prenesete datoteko »employees.txt« v datoteko »employees_copy.txt« lokalno. Znova zaženite ukaz “ls”, da preverite, ali je datoteka pravilno prenesena ali ne.



$ ls
$ rsync zaposlenih.txt zaposlenih_kopija.txt
$ ls

Naslednji izhod kaže, da je bila datoteka »employee.txt« uspešno prenesena:





Recimo, da je treba vsebino začasne mape prenesti v mapo tempdir, kjer v obeh mapah obstaja datoteka »courses.txt«. Zaženite ukaz 'ls temp', da preverite vsebino začasne mape. Nato zaženite ukaz »cat temp/courses.txt«, da preverite vsebino te datoteke. Nato zaženite ukaz 'ls tempdir', da preverite vsebino mape tempdir. Nato zaženite ukaz »cat tempdir/courses.txt«, da preverite vsebino te datoteke.



$ je temp
$ cat temp/courses.txt
$ lstempdir
$ cat tempdir/courses.txt

Izhod kaže, da se vsebina datoteke »courses.txt« v mapi temp in tempdir nekoliko razlikuje in datoteka »courses.txt« v mapi temp vsebuje več podatkov kot datoteka »courses.txt« v mapi tempdir .

Zaženite naslednji ukaz za prenos vsebine začasne mape v mapo tempdir in preverite vsebino datoteke »courses.txt« v mapi tempdir, da potrdite, ali je datoteka pravilno posodobljena ali ne:

$ rsync -a temp/ tempdir/
$ lstempdir
$ cat tempdir/courses.txt

Naslednji izhod kaže, da je vsebina začasne mape pravilno prenesena v mapo tempdir in da je vsebina datoteke »courses.txt« v mapi tempdir pravilno posodobljena:

Lokalno prenesite več datotek in map

Ukaz »rsync« lahko uporabite za lokalni prenos več datotek in map. Zaženite naslednji ukaz za prenos datotek »ping1.bash« in »ping2.bash« v mapo tempdir in po prenosu preverite vsebino mape tempdir. Možnost -v se uporablja z ukazom “rsync” za prikaz izhoda v podrobni obliki:

$ rsync -v ping1.bash ping2.bash tempdir/
$ lstempdir

Naslednji izhod kaže, da je več datotek pravilno prenesenih v mapo tempdir:

Zaženite naslednje ukaze, da preverite vsebino map temp, tempdir in test ter prenesete vsebino mape test in tempdir v mapo temp:

$ je temp
$ lstempdir
$ls test
$ rsync -av test/ tempdir/ temp/
$ je temp

Izhod kaže, da je vsebina map test in tempdir uspešno prenesena v mapo temp. Datoteke »customers.csv«, »ping1.bash« in »ping2.bash« so dodane kot nove datoteke v začasno mapo:

Prenesite posamezno datoteko in mapo na daljavo

Za prenos datotek in map na daljavo morate na oddaljeni lokaciji namestiti in konfigurirati strežnik SSH. To lahko preverite vadnica za konfiguracijo strežnika SSH.

Zaženite naslednji ukaz, da preverite velikost datoteke »courses.txt« trenutne lokacije:

ls -la courses.txt

Izhod kaže, da je velikost datoteke »courses.txt« 65 bajtov:

Zaženite naslednji ukaz za prenos »courses.txt« v /domov/ubuntu/tečaji/ mapa oddaljene lokacije, ubuntu@192.168.0.101. Preden prenesete datoteko, morate vnesti korensko geslo oddaljenega računalnika:

rsync -v tečaji.txt  ubuntu@192.168.0.101:/home/ubuntu/tečaji/

Naslednji izhod kaže, da je datoteka »courses.txt« pravilno prenesena v oddaljeno napravo in da je velikost datoteke 65 bajtov:

Zaženite naslednji ukaz, da prenesete začasno mapo v /domov/ubuntu/tečaji/ mapa oddaljene lokacije, ubuntu@192.168.0.101. Preden prenesete datoteko, kot pri prejšnjem ukazu, morate zagotoviti korensko geslo oddaljenega računalnika.

rsync -av temp/ ubuntu@192.168.0.101:/home/ubuntu/tečaji/

Naslednji izhod kaže, da je vsebina začasne mape pravilno prenesena v oddaljeno napravo:

Prenesite več datotek in map na daljavo

Naslednji ukaz »rsync« prenese datoteki »customers.csv« in »department.json« v /domov/Ubuntu/datoteke/ mapa oddaljene lokacije, ubuntu@192.168.0.101.

rsync -av customers.csv department.json ubuntu@192.168.0.101:/home/ubuntu/files/

Naslednji izhod kaže, da je več datotek uspešno prenesenih na oddaljeno lokacijo:

Naslednji ukaz »rsync« prenese vsebino začasnih in preskusnih map ter datoteko »department.json« v /domov/Ubuntu/datoteke/ mapa oddaljene lokacije, ubuntu@192.168.0.101.

rsync -av temp/ test/ department.json ubuntu@192.168.0.101:/home/ubuntu/files/

Naslednji izhod kaže, da je vsebina več map uspešno prenesena na oddaljeno lokacijo:

Prikaži napredek prenosa

Zaženite ukaz »rsync« z možnostjo –progress, da prenesete vsebino mape tempdir v mapo temp_copy z informacijami o napredku.

rsync -a tempdir/ temp_copy --progress

Naslednji izhod kaže, da je imenik temp_copy ustvarjen lokalno in da je vsebina mape tempdir uspešno prenesena v mapo temp_copy:

Stisnite podatke med prenosom

Zaženite naslednji ukaz »rsync« z možnostjo –z, da stisnete in lokalno prenesete imenik tempdir v testni imenik:

rsync -za tempdir/test/

Naslednji izhod kaže, da je bil stisnjen imenik uspešno prenesen lokalno:

Prenos z omejitvijo pasovne širine

Zaženite naslednji ukaz »rsync« z možnostjo –bwlimit z vrednostjo 100, da lokalno prenesete datoteko /etc/passwd v začasno mapo:

rsync -v --bwlimit=100 etc/passwd temp/

Naslednji izhod kaže, da je bila datoteka passwd uspešno prenesena:

Rekurzivno prenesite datoteko in mapo

Zaženite naslednji ukaz »rsync« z možnostjo –rv, da lokalno prenesete testno mapo v mapo test_bak:

rsync -rv test/test_bak/

Naslednji izhod kaže, da je bila testna mapa uspešno prenesena v mapo test_bak:

Prenos z omejitvijo najmanjše velikosti

Prenos datotek in map z ukazom »rsync« lahko omejite z možnostjo –min-size, da nastavite najmanjšo omejitev velikosti za prenos datotek in map. Zaženite naslednji ukaz 'ls -la tempdir', da preverite velikost vsake datoteke in mape v tej mapi. Nato zaženite ukaz »rsync«, da prenesete vsebino mape tempdir v mapo tempdir_bak z najmanjšo omejitvijo velikosti.

ls -la tempdir
rsync -av --min-size='245B' tempdir/tempdir_bak

Naslednji izhod kaže, da v mapi tempdir obstajata dve datoteki, ki ustrezata najmanjši velikosti. To sta »ping1.bash« (248 bajtov) in »test.txt« (34504 bajtov). Te datoteke se prenesejo v mapo tempdir_bak, druge datoteke v mapi tempdir pa so izpuščene:

Prenos z omejitvijo največje velikosti

Prenos datotek in map z ukazom »rsync« lahko omejite z možnostjo –max-size, da nastavite največjo omejitev velikosti datotek in map za prenos. Zaženite naslednji ukaz 'ls -la temp', da preverite velikost vsake datoteke in mape v tej mapi. Nato zaženite ukaz »rsync«, da prenesete vsebino začasne mape v mapo temp_bak z največjo omejitvijo velikosti.

ls -la temp
rsync --max-size='250B' temp/ temp_bak/

Naslednji izhod kaže, da v začasni mapi obstajajo štiri datoteke, ki ustrezajo največji omejitvi velikosti. To so »courses.txt« (65 bajtov), ​​»employees.csv« (361 bajtov), ​​»ping1.bash« (248 bajtov) in »ping2.bash« (244 bajtov). Te datoteke se prenesejo v mapo temp_bak, druge datoteke v mapi temp pa so izpuščene:

Prenesite datoteke določene vrste

Vrsto datoteke, ki se bo prenesla, lahko nastavite tako, da v ukazu “rsync” omenite končnico datoteke. Zaženite naslednji ukaz »rsync«, da prenesete vse besedilne datoteke začasne mape v mapo mydir. Tu je pripona besedilne datoteke označena z »*.txt«:

rsync -v temp/*.txt mydir/

Naslednji izhod kaže, da sta dve besedilni datoteki, »courses.txt« in »test.txt«, preneseni v mapo mydir, druge datoteke v začasni mapi pa so izpuščene:

Prikažite razlike med izvorno in ciljno datoteko

Ko se datoteke ali mape prenesejo z ene lokacije na drugo lokalno ali na daljavo, lahko obe lokaciji vsebujeta iste datoteke ali mape. Razlike med izvorom in ciljem med prenosom je mogoče preveriti z uporabo možnosti -i z ukazom “rsync”. Zaženite naslednje ukaze »cat«, da preverite vsebino izvorne in ciljne datoteke pred prenosom. Tu se datoteka »courses.txt« prenese v začasno mapo.

mačji tečaji.txt
cat temp/courses.txt
rsync -avi tečaji.txt temp/

Naslednji rezultat kaže, da se izvorna in ciljna datoteka »courses.txt« nekoliko razlikujeta. Izhod ukaza “rsync” prikazuje razliko med datotekama:

Sinhronizirajte podatke v suhem načinu

Če želite izvedeti, katere datoteke in mape se prenesejo z ukazom »rsync« pred dejanskim prenosom, je bolje, da zaženete ukaz »rsync« z možnostjo –dry-run ali –n. Ko se ukaz »rsync« izvede s to možnostjo, preveri, katere datoteke ali mape so kopirane iz izvorne mape v ciljno mapo, vendar ohrani ciljno mapo nespremenjeno. Zaženite datoteko »ls –la department.json«, da preverite velikost datoteke. Nato zaženite ukaz »rsync« z načinom –dry-run, da preverite prenos »department.json« v začasno mapo.

ls -la department.json
rsync -v --dry-run department.json temp/

Naslednji izhod kaže, da je velikost datoteke »department.json« 1172 bajtov. Velikost datoteke kaže 1172 bajtov po izvedbi ukaza »rsync« z možnostjo –dry-run:

Vključite ali izključite datoteke med prenosom

Vrsto datoteke lahko filtrirate v času prenosa z izvorne lokacije na ciljno lokacijo z možnostma –include in –exclude. Možnost »optionsinclude« se uporablja za določitev končnice tistih datotek, ki bodo prenesene od vira do cilja. Možnost –exclude se uporablja za določitev končnice tistih datotek, ki ne bodo prenesene iz vira na cilj.

Zaženite naslednjo mapo »ls temp«, da preverite vsebino začasne mape. Nato zaženite ukaz »rsync« z možnostma –include in –exclude. V skladu z ukazom se vse datoteke CSV iz začasne mape prenesejo v mapo z datotekami, vse besedilne datoteke iz začasne mape pa so ob prenosu izpuščene. Nato zaženite ukaz »ls files«, da preverite, katere datoteke so prenesene iz začasne mape v mapo datotek.

je temp
rsync -a temp/ files/ --include=*.csv --exclude=*.txt
ls datoteke

Naslednji izhod kaže, da začasna mapa vsebuje dve datoteki CSV, dve besedilni datoteki in dve datoteki BASH. Mapa z datotekami je prazna pred prenosom in preneseta se dve datoteki CSV in dve datoteki BASH:

Po prenosu izbrišite izvorne datoteke in mape

V prejšnjih vseh ukazih »rsync« izvorne datoteke in mape ostanejo na izvorni lokaciji po prenosu na ciljno lokacijo. Včasih pa zahteva trajen prenos datotek in map na ciljno lokacijo. To nalogo lahko opravite z možnostjo –remove-source-files z ukazom “rsync”. Zaženite ukaz 'ls', da preverite vse datoteke in mape trenutne lokacije. Zaženite ukaz 'ls temp', da preverite datoteke in mape v začasni mapi. Nato zaženite ukaz »rsync« z možnostjo –remove-source-files, da po končanem prenosu izbrišete datoteke in mape izvorne lokacije. Znova zaženite ukaz 'ls', da preverite, ali je izvorna datoteka odstranjena z izvorne lokacije ali ne.

ls
je temp
rsync  zaposleni.csv temp/ --remove-source-files
ls

Naslednji izhod kaže, da je datoteka »employees.csv« trenutne lokacije prenesena v začasno mapo in da je datoteka »employees.csv« po prenosu odstranjena z izvorne lokacije:

Zaključek

»Rsync« je zelo uporabno orodje Linuxa, ki olajša prenos datotek in map z ene lokacije na drugo z uporabo različnih možnosti. Metode uporabe ukaza »rsync« za prenos datotek in map z ene lokacije na drugo s stiskanjem, nastavitvijo velikosti datotek in map, nastavitvijo vrste datoteke, nastavitvijo omejitve pasovne širine itd. so prikazane v 15 preprostih primerih ta vadnica. Ta vadnica pomaga uporabnikom Linuxa, da pravilno poznajo osnovne uporabe ukaza »rsync« v Linuxu.