15 príkladov Rsync

15 Prikladov Rsync



Prenos súborov z jedného miesta na druhé je pre používateľov Linuxu veľmi bežnou úlohou. Na vykonanie tejto úlohy je v systéme Linux k dispozícii veľa možností; „rsync“ je jedným z nich. Úplná forma „rsync“ je „Remote Sync“. Je to veľmi užitočný synchronizačný nástroj na kopírovanie súborov a priečinkov z jedného systému do druhého lokálne alebo vzdialene. Má oveľa viac výhod ako iné synchronizačné nástroje. Tento nástroj je predvolene nainštalovaný v systéme Linux. Používateľ ho teda nemusí inštalovať. Výhody a použitie príkazu „rsync“ sú uvedené v tomto návode na 15 jednoduchých príkladoch.

Výhody príkazu „Rsync“.

  1. Je rýchlejší ako ostatné nástroje, pretože zo zdrojového miesta do cieľového skopíruje iba tie súbory, ktoré sú upravené alebo v cieľovom umiestnení neexistujú.
  2. Podporuje neúplný prenos.
  3. Vyžaduje menšiu šírku pásma, pretože počas prenosu komprimuje dáta.
  4. Znižuje réžiu prenosu, pretože menej dôležité údaje možno prenášať bez šifrovania.

Syntax

Syntax príkazu „rsync“ je uvedená nasledovne:

rsync [Možnosť] Zdroj Cieľ

Tu môžu byť zdrojové a cieľové cesty lokálne alebo vzdialené. S týmto príkazom možno na rôzne účely použiť rôzne typy volieb.







Užitočné možnosti príkazu „Rsync“.

Niektoré bežne používané možnosti príkazu „rsync“ sú vysvetlené v nasledujúcom texte:



Možnosť Účel
- S Používa sa na kompresiu údajov počas prenosu.
-r Používa sa na rekurzívnu synchronizáciu údajov bez zachovania akéhokoľvek povolenia k súboru.
-a Používa sa na rekurzívnu synchronizáciu údajov zachovaním všetkých oprávnení k súborom.
-b Používa sa na zálohovanie údajov počas prenosu.
-v Používa sa na zobrazenie výstupu v podrobnom formáte.
-p Používa sa na zobrazenie priebehu prenosu.
-n Používa sa na kontrolu, či synchronizácia funguje alebo nie pred prenosom súborov alebo priečinkov.

Zoznam 15 príkladov „Rsync“.

  1. Lokálne preneste jeden súbor a priečinok
  2. Preneste viac súborov a priečinkov lokálne
  3. Vzdialený prenos jedného súboru a priečinka
  4. Vzdialený prenos viacerých súborov a priečinkov
  5. Zobrazte priebeh prenosu
  6. Komprimujte údaje počas prenosu
  7. Prenos s limitom šírky pásma
  8. Preneste súbory a priečinky rekurzívne
  9. Preneste s limitom minimálnej veľkosti
  10. Prenos s limitom maximálnej veľkosti
  11. Preneste súbory konkrétneho typu
  12. Zobrazte rozdiely medzi zdrojovým a cieľovým súborom
  13. Zahrnúť alebo vylúčiť súbory počas prenosu
  14. Synchronizujte údaje v režime sucha
  15. Po prenose odstráňte zdrojové súbory a priečinky

Lokálne preneste jeden súbor a priečinok

Spustite príkaz „ls“, aby ste zobrazili zoznam súborov a priečinkov aktuálneho umiestnenia. Potom spustite príkaz „rsync“ a lokálne preneste súbor „employees.txt“ do súboru „employees_copy.txt“. Znova spustite príkaz „ls“, aby ste skontrolovali, či sa súbor preniesol správne alebo nie.



$ ls
$ rsync staff.txt staff_copy.txt
$ ls

Nasledujúci výstup ukazuje, že súbor „employee.txt“ bol úspešne prenesený:





Predpokladajme, že obsah dočasného priečinka sa musí preniesť do priečinka tempdir, kde v oboch priečinkoch existuje súbor „courses.txt“. Spustite príkaz „ls temp“ a skontrolujte obsah priečinka temp. Potom spustite príkaz „cat temp/courses.txt“ a skontrolujte obsah tohto súboru. Potom spustite príkaz „ls tempdir“ a skontrolujte obsah priečinka tempdir. Potom spustite príkaz „cat tempdir/courses.txt“, aby ste skontrolovali obsah tohto súboru.



$ ls teplota
$ cat temp/courses.txt
$ lstempdir
$ cat tempdir/courses.txt

Výstup ukazuje, že obsah súboru „courses.txt“ priečinkov temp a tempdir je mierne odlišný a súbor „courses.txt“ priečinka temp obsahuje viac údajov ako súbor „courses.txt“ priečinka tempdir .

Spustite nasledujúci príkaz na prenos obsahu priečinka temp do priečinka tempdir a skontrolujte obsah súboru „courses.txt“ priečinka tempdir, aby ste sa uistili, že súbor je aktualizovaný správne alebo nie:

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

Nasledujúci výstup ukazuje, že obsah priečinka temp je správne prenesený do priečinka tempdir a obsah súboru „courses.txt“ priečinka tempdir je správne aktualizovaný:

Preneste viac súborov a priečinkov lokálne

Príkaz „rsync“ možno použiť na lokálny prenos viacerých súborov a priečinkov. Spustite nasledujúci príkaz na prenos súborov „ping1.bash“ a „ping2.bash“ do priečinka tempdir a po prenose skontrolujte obsah priečinka tempdir. Voľba -v sa používa s príkazom „rsync“ na zobrazenie výstupu v podrobnom formáte:

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

Nasledujúci výstup ukazuje, že viacero súborov sa správne prenesie do priečinka tempdir:

Spustite nasledujúce príkazy na kontrolu obsahu priečinkov temp, tempdir a test a preneste obsah priečinkov test a tempdir do priečinka temp:

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

Výstup ukazuje, že obsah priečinkov test a tempdir sa úspešne preniesol do priečinka temp. Súbory „customers.csv“, „ping1.bash“ a „ping2.bash“ sa pridajú ako nové súbory do dočasného priečinka:

Vzdialený prenos jedného súboru a priečinka

Na vzdialený prenos súborov a priečinkov musíte nainštalovať a nakonfigurovať server SSH vo vzdialenom umiestnení. Môžete to skontrolovať tutoriál na konfiguráciu servera SSH.

Spustite nasledujúci príkaz a skontrolujte veľkosť súboru „courses.txt“ aktuálneho umiestnenia:

ls -la Courses.txt

Výstup ukazuje, že veľkosť súboru „courses.txt“ je 65 bajtov:

Spustite nasledujúci príkaz na prenos súboru „courses.txt“ do súboru /home/ubuntu/kurzy/ priečinok vzdialeného umiestnenia, ubuntu@192.168.0.101. Pred prenosom súboru musíte zadať heslo root vzdialeného počítača:

rsync -v Courses.txt  ubuntu@192.168.0.101:/home/ubuntu/courses/

Nasledujúci výstup ukazuje, že súbor „courses.txt“ bol správne prenesený do vzdialeného počítača a veľkosť súboru je 65 bajtov:

Spustite nasledujúci príkaz na prenos dočasného priečinka do /home/ubuntu/kurzy/ priečinok vzdialeného umiestnenia, ubuntu@192.168.0.101. Pred prenosom súboru ako v predchádzajúcom príkaze musíte zadať heslo root vzdialeného počítača.

rsync -av temp/ ubuntu@192.168.0.101:/home/ubuntu/courses/

Nasledujúci výstup ukazuje, že obsah dočasného priečinka sa do vzdialeného počítača prenesie správne:

Vzdialený prenos viacerých súborov a priečinkov

Nasledujúci príkaz „rsync“ prenesie súbory „customers.csv“ a „department.json“ do /home/Ubuntu/files/ priečinok vzdialeného umiestnenia, ubuntu@192.168.0.101.

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

Nasledujúci výstup ukazuje, že viaceré súbory sa úspešne preniesli do vzdialeného umiestnenia:

Nasledujúci príkaz „rsync“ prenesie obsah priečinka temp a test a súboru „department.json“ do /home/Ubuntu/files/ priečinok vzdialeného umiestnenia, ubuntu@192.168.0.101.

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

Nasledujúci výstup ukazuje, že obsah viacerých priečinkov sa úspešne preniesol do vzdialeného umiestnenia:

Zobrazte priebeh prenosu

Spustite príkaz „rsync“ s voľbou –progress na prenos obsahu priečinka tempdir do priečinka temp_copy s informáciami o priebehu.

rsync -a tempdir/ temp_copy --progress

Nasledujúci výstup ukazuje, že adresár temp_copy je vytvorený lokálne a obsah priečinka tempdir sa úspešne prenesie do priečinka temp_copy:

Komprimujte údaje počas prenosu

Spustite nasledujúci príkaz „rsync“ s voľbou –z na kompresiu a lokálny prenos adresára tempdir do testovacieho adresára:

rsync -za tempdir/test/

Nasledujúci výstup ukazuje, že komprimovaný adresár sa úspešne preniesol lokálne:

Prenos s limitom šírky pásma

Ak chcete lokálne preniesť súbor /etc/passwd do dočasného priečinka, spustite nasledujúci príkaz „rsync“ s voľbou –bwlimit s hodnotou 100:

rsync -v --bwlimit=100 atď/passwd temp/

Nasledujúci výstup ukazuje, že súbor passwd bol úspešne prenesený:

Preneste súbor a priečinok rekurzívne

Spustite nasledujúci príkaz „rsync“ s voľbou –rv, aby ste preniesli testovací priečinok do priečinka test_bak lokálne:

rsync -rv test/ test_bak/

Nasledujúci výstup ukazuje, že testovací priečinok bol úspešne prenesený do priečinka test_bak:

Preneste s limitom minimálnej veľkosti

Prenos súborov a priečinkov pomocou príkazu „rsync“ je možné obmedziť pomocou možnosti –min-size na nastavenie minimálneho limitu veľkosti prenášaných súborov a priečinkov. Spustite nasledujúci príkaz „ls -la tempdir“ a skontrolujte veľkosť každého súboru a priečinka tohto priečinka. Potom spustite príkaz „rsync“ na prenos obsahu priečinka tempdir do priečinka tempdir_bak s minimálnym limitom veľkosti.

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

Nasledujúci výstup ukazuje, že v priečinku tempdir existujú dva súbory, ktoré zodpovedajú minimálnej veľkosti. Sú to „ping1.bash“ (248 bajtov) a „test.txt“ (34504 bajtov). Tieto súbory sa prenesú do priečinka tempdir_bak a ostatné súbory priečinka tempdir sa vynechajú:

Prenos s limitom maximálnej veľkosti

Prenos súborov a priečinkov pomocou príkazu „rsync“ možno obmedziť pomocou možnosti –max-size na nastavenie maximálneho limitu veľkosti prenášaných súborov a priečinkov. Spustite nasledujúci príkaz „ls -la temp“ a skontrolujte veľkosť každého súboru a priečinka tohto priečinka. Potom spustite príkaz „rsync“ a preneste obsah dočasného priečinka do priečinka temp_bak s maximálnym limitom veľkosti.

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

Nasledujúci výstup ukazuje, že v dočasnom priečinku existujú štyri súbory, ktoré zodpovedajú maximálnej veľkosti. Sú to „courses.txt“ (65 bajtov), ​​„employees.csv“ (361 bajtov), ​​„ping1.bash“ (248 bajtov) a „ping2.bash“ (244 bajtov). Tieto súbory sa prenesú do priečinka temp_bak a ostatné súbory v priečinku temp sa vynechajú:

Preneste súbory konkrétneho typu

Typ súboru, ktorý sa bude prenášať, je možné nastaviť uvedením prípony súboru v príkaze „rsync“. Spustite nasledujúci príkaz „rsync“ na prenos všetkých textových súborov dočasného priečinka do priečinka mydir. Tu je prípona textového súboru označená pomocou „*.txt“:

rsync -v temp/*.txt mydir/

Nasledujúci výstup ukazuje, že dva textové súbory „courses.txt“ a „test.txt“ sa prenesú do priečinka mydir a ostatné súbory dočasného priečinka sú vynechané:

Zobrazte rozdiely medzi zdrojovým a cieľovým súborom

Keď sa súbory alebo priečinky prenesú z jedného miesta na druhé lokálne alebo vzdialene, obe miesta môžu obsahovať rovnaké súbory alebo priečinky. Rozdiely medzi zdrojom a cieľom počas prenosu je možné preskúmať pomocou voľby -i s príkazom „rsync“. Pred prenosom spustite nasledujúce príkazy „cat“, aby ste skontrolovali obsah zdrojového a cieľového súboru. Tu sa súbor „courses.txt“ prenesie do dočasného priečinka.

kurzy mačiek.txt
mačka temp/kurzy.txt
rsync -avi kurzy.txt temp/

Nasledujúci výstup ukazuje, že súbor „courses.txt“ zdroja a cieľa sa mierne líši. Výstup príkazu „rsync“ zobrazuje rozdiel medzi súbormi:

Synchronizujte údaje v režime sucha

Ak chcete vedieť, ktoré súbory a priečinky sa prenášajú príkazom „rsync“ pred samotným prenosom, je lepšie spustiť príkaz „rsync“ s voľbou –dry-run alebo –n. Keď sa príkaz „rsync“ vykoná s touto voľbou, skontroluje, ktoré súbory alebo priečinky sa skopírujú zo zdrojového priečinka do cieľového priečinka, no cieľový priečinok zostane nezmenený. Spustite súbor „ls –la department.json“ a skontrolujte veľkosť súboru. Potom spustite príkaz „rsync“ v režime –dry-run, aby ste skontrolovali prenos súboru „department.json“ do priečinka temp.

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

Nasledujúci výstup ukazuje, že veľkosť súboru „department.json“ je 1172 bajtov. Veľkosť súboru ukazuje 1172 bajtov po vykonaní príkazu „rsync“ s voľbou –dry-run:

Zahrnúť alebo vylúčiť súbory počas prenosu

Pomocou možností –include a –exclude môžete filtrovať typ súboru v čase prenosu zo zdrojového umiestnenia do cieľového umiestnenia. Možnosť „optionsinclude“ sa používa na definovanie prípony tých súborov, ktoré sa prenesú zo zdroja do cieľa. Možnosť –exclude sa používa na definovanie prípony tých súborov, ktoré sa neprenesú zo zdroja do cieľa.

Spustite nasledujúci priečinok „ls temp“ a skontrolujte obsah priečinka temp. Potom spustite príkaz „rsync“ s možnosťami –include a –exclude. Podľa príkazu sa všetky súbory CSV dočasného priečinka prenesú do priečinka súborov a všetky textové súbory dočasného priečinka sa v čase prenosu vynechajú. Potom spustite príkaz „ls files“, aby ste skontrolovali, ktoré súbory sa prenesú z dočasného priečinka do priečinka so súbormi.

ls temp
rsync -a temp/ files/ --include=*.csv --exclude=*.txt
ls súbory

Nasledujúci výstup ukazuje, že dočasný priečinok obsahuje dva súbory CSV, dva textové súbory a dva súbory BASH. Priečinok súborov je pred prenosom prázdny a prenesú sa dva súbory CSV a dva súbory BASH:

Po prenose odstráňte zdrojové súbory a priečinky

V predchádzajúcich príkazoch „rsync“ zostávajú zdrojové súbory a priečinky po prenose do cieľového umiestnenia v zdrojovom umiestnení. Niekedy však vyžaduje trvalý prenos súborov a priečinkov do cieľového umiestnenia. Túto úlohu je možné vykonať pomocou voľby –remove-source-files s príkazom „rsync“. Spustite príkaz „ls“, aby ste skontrolovali všetky súbory a priečinky v aktuálnom umiestnení. Spustite príkaz „ls temp“ a skontrolujte súbory a priečinky dočasného priečinka. Potom spustite príkaz „rsync“ s možnosťou –remove-source-files, aby ste po dokončení prenosu odstránili súbory a priečinky zdrojového umiestnenia. Znova spustite príkaz „ls“, aby ste skontrolovali, či je zdrojový súbor odstránený zo zdrojového umiestnenia alebo nie.

ls
ls temp
rsync  staff.csv temp/ --remove-source-files
ls

Nasledujúci výstup ukazuje, že súbor „employees.csv“ aktuálneho umiestnenia sa prenesie do dočasného priečinka a súbor „employees.csv“ sa po prenose odstráni zo zdrojového umiestnenia:

Záver

„rsync“ je veľmi užitočný nástroj Linuxu, ktorý uľahčuje prenos súborov a priečinkov z jedného miesta na druhé pomocou rôznych možností. Metódy použitia príkazu „rsync“ na prenos súborov a priečinkov z jedného miesta na druhé komprimáciou, nastavením veľkosti súborov a priečinkov, nastavením typu súboru, nastavením limitu šírky pásma atď. sú znázornené v 15 jednoduchých príkladoch tento tutoriál. Tento tutoriál pomáha používateľom Linuxu správne poznať základné použitie príkazu „rsync“ v systéme Linux.