Příkaz Rsync (vzdálená synchronizace) je obslužný program Linux / Unix používaný k synchronizaci a kopírování souborů a adresářů lokálně nebo vzdáleně. Většina Linuxových geeků používá Rsync k zrcadlení, zálohování nebo migraci dat mezi složkami, disky a sítěmi. Jedním z pozoruhodných rysů příkazu Rsync je, že používá „algoritmus přenosu delta.“
Algoritmus Delta Transfer funguje tak, že se cílový adresář aktualizuje o obsah zdrojového cíle. Pokud se ve zdrojovém adresáři vytvoří změna nebo nový soubor, při spuštění příkazu Rsync se do cílového adresáře zkopíruje pouze konkrétní změna. K synchronizaci souborů a adresářů mezi místním a vzdáleným počítačem využívá Rsync SSH.
Instalace Rsync v Linuxu
Příkaz Rsync je předinstalován ve většině operačních systémů Linux. To však nemusí být případ některých minimálních instalací. Rsync můžete nainstalovat spuštěním níže uvedených příkazů v terminálu.
Na CentOS & RHEL
yum nainstalovat rsync -y
Na Ubuntu a dalších distribucích Debianu
sudo apt install rsync -y
Rsync Základní syntaxe
cíl zdroje rsync
Některé ze standardních možností / parametrů použitých s příkazem Rsync:
-v: -verbose Podrobný výstup
-r: kopíruje data rekurzivně
-z: komprimovat data souboru
-h: Poskytuje výstup ve formátu čitelném pro člověka
-a: archivovat soubory a adresář při synchronizaci
-progress Zobrazuje průběh právě spuštěných úloh Rsync.
Všechny možnosti dostupné pro příkaz Rsync můžete zobrazit pomocí možnosti „-help“.
$ rsync - pomoc
Top 20 Rsync příkladů v Linuxu
S ohledem na tyto podrobné informace začněme s 20 užitečnými ukázkovými příkazy Rsync, které můžete použít v systémech Linux. Náš zvolený operační systém je Ubuntu 20.04 LTS; syntaxe by však měla fungovat i pro jiné distribuce Linuxu s nainstalovaným Rsync.
1. Zkopírujte / synchronizujte soubory lokálně s volbou -v (podrobné)
To je nejzákladnější příkaz Rsync, dokonce i pro nováčka. V tomto příkladu budeme kopírovat soubory meziOriginál'adresář na ploše do'Záloha'adresář v' / etc.složka. Zahrneme možnost -v (Verbose), aby rsync mohl poskytnout informace o tom, co se děje.
rsync -v Original /
U Rsync je třeba si uvědomit, že pokud cílový adresář neexistuje, automaticky jej vytvoří. Podívejme se na příklad níže, kde chceme kopírovat soubory do adresáře “Foss„To neexistuje.
2. Synchronizovat / kopírovat soubory a adresáře rekurzivně s volbou -r
Ve výše uvedeném příkazu, pokud byl v adresáři 'přítomen adresářOriginál'složka, bude přeskočena. To je znázorněno na obrázku níže.
Chcete-li to překonat, použijte volbu -r (rekurzivní).
3. Synchronizace / kopírování souborů mezi místním a vzdáleným zařízením
Před provedením tohoto úkolu musíte o vzdáleném serveru / stroji vědět několik parametrů: IP adresa, uživatelské jméno a heslo uživatele.
Základní syntaxe, kterou použijeme, je:
rsync [možnosti] [soubory] [vzdálené uživatelské jméno] @ [adresa IP]: / [cíl]
Pojďme kopírovat soubory z našehoOriginál'adresář na ploše na vzdálený server.
4. Synchronizujte / kopírujte soubory a adresáře ze vzdáleného serveru do místního počítače
Stejně jako předchozí příkaz budeme potřebovat znát IP adresu vzdáleného serveru. V tomto příkladu budeme synchronizovat soubory vZáloha'složka v domovském adresáři serveru na náš místní počítač.
rsync -rv učí @ 192.168.1.64: / home / tuts / Backup / home / tuts / Desktop / Original
5. Použijte Rsync přes SSH s volbou -e
Abychom zajistili bezpečnost souborů a složek, použijeme protokol Rsync over Secure Shell Protocol (SSH). Při poskytování hesla root / uživatele navíc - SSH poskytne šifrovací služby a zajistí jejich bezpečnost.
Chcete-li použít SSH, přidáme možnost -e, která určuje protokol, který chceme použít.
rsync -vre ssh Original / * tuts @ 192.168.1.64: / home / tuts
6. Ukažte pokrok pomocí příkazu Rsync
V situacích, kdy zkopírujete více souborů nebo velký soubor, bude znalost postupu efektivní. Naštěstí má rsync tuto možnost - '-pokrokmožnost.
sudo rsync -rv --progress Original / * / etc / Foss
7. Použijte Rsync s možností '-include'
Existují situace, kdy chcete synchronizovat pouze určité soubory. Příkazem Rsync způsobíte '-zahrnout„možnost provést úkol. V tomto příkladu budeme synchronizovat pouze soubory začínající písmenem „I“.
sudo rsync -vr - zahrnout 'I *' Original / / etc / Backup /
8. Chcete-li ignorovat konkrétní soubory, použijte Rsync s volbou '-exclude'
S Rsync '-vyloučit', můžete vyloučit soubory, které nechcete synchronizovat / kopírovat. V tomto příkladu chceme ignorovat všechny soubory začínající písmenem „I“.
sudo rsync -vr --exclude 'I *' Original / / etc / Backup /
Alternativně můžete použít obě možnosti v jednom příkazu. Viz příklad níže.
sudo rsync -vr --exclude '*' --include 'I *' Original / / etc / Backup /
Vylučujeme všechny soubory kromě těch, které začínají písmenem „I.''
9. Použijte Rsync s příkazem -delete
Existují situace, kdy jsou v cílovém adresáři soubory, ale ne ve zdrojové složce. Pro synchronizaci by bylo nejlepší tyto soubory nejprve odebrat z cílového adresáře. Naštěstí Rsync přichází s-vymazat'možnost, která to dělá automaticky.
Pokud je soubor v cílovém adresáři, ale ne ve zdroji, odstraní jej.
rsync -vr --delete / etc / Backup / tuts @ 192.168.1.64: / home / tuts / Backup
10. Nastavte maximální velikost souborů pro přenos pomocí Rsync
Pokud se zajímáte o úložný prostor nebo šířku pásma pro vzdálenou synchronizaci souborů, musíte pomocí příkazu Rsync použít volbu '-max-size'. Tato možnost umožňuje nastavit maximální velikost souboru, který lze kopírovat.
Například-max-size = 100k„přenese pouze data o velikosti 100 kB nebo menší.
rsync -vr --max-size = '200k' / etc / Backup / tuts @ 192.168.1.64: / home / tuts / Backup
11. Po úspěšném přenosu automaticky odstraňte zdrojové soubory
Vezměte si situaci, kdy máte ve svém počítači vzdálený zálohovací server a záložní adresář. Před synchronizací se záložním serverem zálohujete data do záložní složky v počítači. Po každé synchronizaci budete muset odstranit data ze záložního adresáře.
Naštěstí to můžete udělat automaticky pomocí '--remove-source-filesmožnost.
Spuštěním příkazu 'ls' ve zdrojové složce potvrzujeme, že soubory byly skutečně odstraněny.
12. Proveďte běh nasucho s Rsync
Pro nováčky, kteří si nejsou jistí příkazem Rsync, můžete obsah cílového adresáře pokazit a vrácení může být stejně zdlouhavé. S '-nasucho', příkaz Rsync vám poskytne výstup toho, co bude provedeno, ale neudělá to.
Proto se můžete podívat na tento výstup, pokud je to, co očekáváte, než přejdete k odstranění '-nasuchomožnost.
rsync -vr --dry-run Original / * tuts @ 192.168.1.64: / home / tuts / Backup
13. K přenosu souborů nastavte požadovanou rychlost připojení.
Pokud jste ve sdílené síti nebo spouštíte několik programů, které potřebují připojení k internetu, bylo by efektivní nastavit požadovaný limit šířky pásma pro vzdálenou synchronizaci / kopírování souborů. Můžeme to udělat s Rsync '-bwlimitmožnost.
Tato sazba se počítá v kilobajtech. Proto, když-bwlimit = 1000„znamená, že lze přenést pouze 1 000 kB za sekundu.
rsync -vr --bwlimit = 1000 originálních / * tutorů @ 192.168.1.64: / home / tuts / Backup
14. Synchronizujte celé soubory s Rsync
Ve výchozím nastavení synchronizuje Rsync pouze upravené bloky a bajty. Proto pokud jste předtím synchronizovali textový soubor a později jste při synchronizaci přidali některé texty do zdrojového souboru, zkopíruje se pouze vložený text. Pokud chcete znovu synchronizovat celý soubor, budete muset použít volbu „-W“.
rsync -vrW Original / * tuts @ 192.168.1.64: / home / tuts / Backup
15. Nesynchronizujte / nekopírujte upravené soubory v cílovém adresáři
Existují situace, kdy jste provedli úpravy souborů přítomných v cílové složce. Pokud spustíte příkaz Rsync, budou tyto úpravy přepsány těmi ve zdrojovém souboru. Chcete-li se tomu vyhnout, použijte volbu '-u'.
rsync -vu Original / * tuts @ 192.168.1.64: / home / tuts / Backup
16. Možnost Rsync s volbou -i slouží k zobrazení rozdílu mezi soubory mezi zdrojem a cílem
Pokud chcete vědět, jaké nové změny budou provedeny v cílovém adresáři, použijte volbu '-i', která zobrazí rozdíl v souborech mezi zdrojovým a cílovým adresářem.
rsync -avzi Original / Záloha /
Vytvořte výstup na obrázku výše a uvidíme soubor s názvem 'heloo.py ' není v cílovém adresáři. Podívejme se na některé z těchto parametrů.
d: zobrazuje změnu v cílovém souboru
f: představuje soubor
t: ukazuje změnu časových značek
s: označuje změnu velikosti souboru
17. Pomocí programu Rsync můžete kopírovat pouze strukturu adresářů
Pokud nemáte zájem o soubory, můžete použít Rsync k synchronizaci pouze adresářové struktury. Před zdrojovým adresářem budeme muset použít parametry -f ”+ * /” -f ”- *”.
rsync -av -f "+ * /" -f "- *" / home / tuts / Desktop / Original / / home / tuts / Documents /
18. Přidejte datové razítko do názvu adresáře
Pokud chcete sledovat, kdy došlo k přenosu bez otevření vlastností adresáře, můžete snadno přidat datum názvu adresáře. Tím přidáte datové razítko ke všem synchronizacím, které provádíte s Rsync.
K tomu připojíme $ (datum + \\% Y - \\% m - \\% d) do cílového adresáře.
sudo rsync -rv Original / / etc / $ (datum + \\% Y - \\% m - \\% d)
19. Zkopírujte jeden soubor lokálně
Chcete-li synchronizovat / kopírovat jeden soubor s Rsync, budete muset zadat cestu k souboru následovanou cestou k cílovému adresáři.
rsync -v Original / heloo.py Zálohování /
20. Vzdálené kopírování více souborů
Chcete-li kopírovat více souborů současně, budete muset zadat cestu ke všem. Tato metoda je efektivní pouze pro malý počet souborů.
rsync -vr / home / tuts / Desktop / Original / heloo.py / home / tuts / Desktop / Backup / index.html tutoriály @ 192.168.1.64: / home / tuts / Backup
To je vše o nejlepších 20 užitečných příkladech Rsync, které vám umožní synchronizovat soubory a adresáře lokálně i vzdáleně. Svou zpětnou vazbu a komentáře můžete zanechat níže.