Prednosti ukaza “Rsync”.
- 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.
- Podpira nepopoln prenos.
- Zahteva manjšo pasovno širino, ker stisne podatke med prenosom.
- 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 ciljTukaj 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«.
- Lokalno prenesite posamezno datoteko in mapo
- Lokalno prenesite več datotek in map
- Prenesite posamezno datoteko in mapo na daljavo
- Prenesite več datotek in map na daljavo
- Prikaži napredek prenosa
- Stisnite podatke med prenosom
- Prenos z omejitvijo pasovne širine
- Rekurzivno prenesite datoteke in mape
- Prenos z omejitvijo najmanjše velikosti
- Prenos z omejitvijo največje velikosti
- Prenesite datoteke določene vrste
- Prikažite razlike med izvorno in ciljno datoteko
- Vključite ali izključite datoteke med prenosom
- Sinhronizirajte podatke v suhem načinu
- 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.txtIzhod 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 --progressNaslednji 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 tempdirrsync -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 temprsync --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.txtcat 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.jsonrsync -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 temprsync -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.
lsje 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.