Příkaz Rsync v Linuxu s příklady

rsync je rychlý a univerzální nástroj příkazového řádku pro synchronizaci souborů a adresářů mezi dvěma umístěními přes vzdálený shell nebo z/do vzdáleného démona Rsync. Poskytuje rychlý inkrementální přenos souborů tím, že přenáší pouze rozdíly mezi zdrojem a cílem.

Rsync lze použít pro zrcadlení dat, inkrementální zálohování, kopírování souborů mezi systémy a jako náhradu příkazů scp, sftp a cp.

V tomto článku je vysvětleno použití nástroje rsync na praktických příkladech a podrobném vysvětlení nejčastějších možností nástroje rsync.

Instalace nástroje Rsync #

Utilita rsync je předinstalována ve většině distribucí systému Linux a MacOS. Pokud rsync nemáte ve svém systému nainstalovaný, můžete jej snadno nainstalovat pomocí správce balíčků své distribuce.

Instalace příkazu Rsync v Ubuntu a Debianu #

sudo apt install rsync

Instalace příkazu Rsync v systémech CentOS a Fedora #

sudo yum install rsync

Syntaxe příkazu Rsync #

Než se pustíme do používání příkazu rsync, začneme přehledem základní syntaxe.

Výrazy nástroje rsync mají následující podobu:

Local to Local: rsync ... ... DESTLocal to Remote: rsync ... ... HOST:DESTRemote to Local: rsync ... HOST:SRC... 
  • OPTION – Možnosti rsync.
  • SRC – Zdrojový adresář.
  • DEST – Cílový adresář.
  • USER – Vzdálené uživatelské jméno.
  • HOST – Vzdálené jméno hostitele nebo IP adresa.

rsync poskytuje řadu možností, které řídí chování příkazu. Nejpoužívanější volby jsou:

  • -a, --archive, archivní režim, ekvivalentní volbě -rlptgoD. Tato volba říká rsync, aby synchronizoval adresáře rekurzivně, přenášel speciální a bloková zařízení, zachovával symbolické odkazy, časy modifikací, skupiny, vlastnictví a oprávnění.
  • -z, --compress. Tato volba přinutí rsync komprimovat data při jejich odesílání na cílový počítač. Tuto volbu použijte pouze v případě, že je připojení ke vzdálenému počítači pomalé.
  • -P, ekvivalent --partial --progress. Při použití této volby rsync se během přenosu zobrazuje ukazatel průběhu a zachovávají se částečně přenesené soubory. Je užitečná při přenosu velkých souborů přes pomalé nebo nestabilní síťové připojení.
  • --delete. Při použití této možnosti rsync odstraní cizí soubory z cílového umístění. Je užitečná při zrcadlení.
  • -q, --quiet. Tuto volbu použijte, pokud chcete potlačit jiné než chybové zprávy.
  • -e. Tato volba umožňuje zvolit jiný vzdálený shell. Ve výchozím nastavení je rsync nakonfigurován na použití ssh.

Základní použití Rsync #

Nejzákladnějším případem použití rsync je kopírování jednoho souboru z jednoho do jiného místního umístění. Zde je příklad:

rsync -a /opt/filename.zip /tmp/

Uživatel spouštějící příkaz musí mít oprávnění ke čtení ve zdrojovém umístění a oprávnění k zápisu v cílovém umístění.

Vyslání názvu souboru z cílového umístění zkopíruje soubor s aktuálním názvem. Pokud chcete soubor uložit pod jiným názvem, zadejte nový název v cílové části:

rsync -a /opt/filename.zip /tmp/newfilename.zip

Skutečná síla funkce rsync se projeví při synchronizaci adresářů. Následující příklad ukazuje, jak vytvořit místní zálohu souborů webové stránky:

rsync -a /var/www/domain.com/public_html/ /var/www/domain.com/public_html_backup/

Pokud cílový adresář neexistuje, rsync jej vytvoří.

Je třeba zmínit, že rsync odlišně zachází se zdrojovými adresáři s koncovým lomítkem (/). Pokud má zdrojový adresář koncové lomítko, zkopíruje příkaz do cílového adresáře pouze jeho obsah. Pokud je koncové lomítko vynecháno, příkaz rsync zkopíruje zdrojový adresář dovnitř cílového adresáře.

Použití příkazu rsync k synchronizaci dat z/do vzdáleného počítače #

Při použití příkazu rsync ke vzdálenému přenosu dat musí být nainstalován na zdrojovém i cílovém počítači. Nové verze rsync jsou nakonfigurovány tak, aby jako výchozí vzdálený shell používaly SSH.

V následujícím příkladu přenášíme adresář z místního na vzdálený stroj:

rsync -a /opt/media/ remote_user@remote_host_or_ip:/opt/media/
Pokud jste nenastavili bezheslové přihlášení SSHdo vzdáleného stroje, budete vyzváni k zadání uživatelského hesla.

Chcete-li přenést data ze vzdáleného do místního počítače, použijte vzdálené umístění jako zdroj:

rsync -a remote_user@remote_host_or_ip:/opt/media/ /opt/media/

Pokud SSH na vzdáleném hostiteli naslouchá na jiném portu než na výchozím 22 , zadejte port pomocí možnosti -e:

rsync -a -e "ssh -p 2322" /opt/media/ remote_user@remote_host_or_ip:/opt/media/

Při přenosu velkého množství dat se doporučuje spustit příkaz rsync uvnitř relace obrazovky nebo použít volbu -P:

rsync -a -P remote_user@remote_host_or_ip:/opt/media/ /opt/media/

Vyloučit soubory a adresáře #

K dispozici jsou dvě možnosti vyloučení souborů a adresářů. První možností je použít argument --exclude a zadat soubory a adresáře, které chcete vyloučit, na příkazovém řádku.

Při vylučování souborů nebo adresářů je třeba použít jejich relativní cesty ke zdrojovému umístění.

V následujícím příkladu je ukázáno, jak vyloučit adresáře node_modules a tmp:

rsync -a --exclude=node_modules --exclude=tmp /src_directory/ /dst_directory/

Druhou možností je použít parametr --exclude-from a zadat soubory a adresáře, které chcete vyloučit, v souboru.

rsync -a --exclude-from='/exclude-file.txt' /src_directory/ /dst_directory/
/exclude-file.txt
node_modulestmp

Závěr #

Ukázali jsme si, jak pomocí nástroje Rsync kopírovat a synchronizovat soubory a adresáře. Na stránce Uživatelská příručka Rsync se toho o Rsync dozvíte mnohem víc.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.