rsync
je rychlý a všestranný 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ý přírůstkový přenos souborů přenosem pouze rozdílů mezi zdrojem a cílem.
Rsync lze použít pro zrcadlení dat, přírůstkové zálohy, kopírování souborů mezi systémy a jako náhradu za scp
, sftp
a cp
příkazy.
Tento článek vysvětluje, jak používat rsync
prostřednictvím praktických příkladů a podrobných vysvětlení nejběžnějšího rsync
možnosti.
Instalace Rsync #
rsync
nástroj je předinstalovaný ve většině distribucí Linuxu a macOS. Pokud nemáte rsync
nainstalovaný ve vašem systému, můžete jej snadno nainstalovat pomocí správce balíčků vaší distribuce.
Instalovat Rsync na Ubuntu a Debian #
sudo apt install rsync
Instalovat Rsync na CentOS a Fedoru #
sudo yum install rsync
Syntaxe příkazu Rsync #
Než se pustíte do toho, jak používat rsync
příkaz, začněme zopakováním základní syntaxe.
rsync
pomocné výrazy mají následující podobu:
Local to Local: rsync [OPTION]... [SRC]... DEST
Local to Remote: rsync [OPTION]... [SRC]... [USER@]HOST:DEST
Remote to Local: rsync [OPTION]... [USER@]HOST:SRC... [DEST]
OPTION
- Možnosti rsync.SRC
- Zdrojový adresář.DEST
– Cílový adresář.USER
– Vzdálené uživatelské jméno.HOST
– Název vzdáleného hostitele nebo IP adresa.
rsync
poskytuje řadu možností, které řídí, jak se příkaz chová. Nejpoužívanější možnosti jsou:
-a
,--archive
, archivační režim, ekvivalentní-rlptgoD
. Tato možnost říkársync
k rekurzivní synchronizaci adresářů, přenosu speciálních a blokových zařízení, zachování symbolických odkazů, časů úprav, skupin, vlastnictví a oprávnění.-z
,--compress
. Tato volba vynutírsync
pro komprimaci dat při jejich odesílání do cílového počítače. Tuto možnost použijte pouze v případě, že je připojení ke vzdálenému počítači pomalé.-P
, ekvivalentní--partial --progress
. Při použití této možnostirsync
zobrazuje indikátor průběhu během přenosu a uchovává částečně přenesené soubory. Je to 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žnostirsync
odstraní nadbytečné soubory z cílového umístění. Je to užitečné pro zrcadlení.-q
,--quiet
. Tuto možnost použijte, pokud chcete potlačit nechybové zprávy.-e
. Tato možnost vám umožňuje vybrat jiný vzdálený shell. Ve výchozím nastavenírsync
je nakonfigurován pro použití ssh.
Základní použití Rsync #
Nejzákladnější případ použití rsync
je zkopírovat jeden soubor 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íli.
Vynechá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 rsync
přichází při synchronizaci adresářů. Níže uvedený příklad ukazuje, jak vytvořit místní zálohu souborů webových stránek:
rsync -a /var/www/domain.com/public_html/ /var/www/domain.com/public_html_backup/
Pokud cílový adresář neexistuje, rsync
vytvoří jej.
Za zmínku stojí rsync
poskytuje odlišné zacházení se zdrojovými adresáři s koncovým lomítkem (/
). Pokud má zdrojový adresář koncové lomítko, příkaz zkopíruje pouze obsah adresáře do cílového adresáře. Když je vynecháno koncové lomítko, rsync
zkopíruje zdrojový adresář do cílového adresáře.
Používání rsync
k synchronizaci dat ze/do vzdáleného počítače #
Při použití rsync
pro vzdálený přenos dat musí být nainstalován na zdrojovém i cílovém počítači. Nové verze rsync
jsou nakonfigurovány tak, aby používali SSH jako výchozí vzdálený shell.
V následujícím příkladu přenášíme adresář z místního na vzdálený počítač:
rsync -a /opt/media/ remote_user@remote_host_or_ip:/opt/media/
Pokud jste nenastavili SSH přihlášení ke vzdálenému počítači bez hesla, budete požádáni o 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 jako zdroj vzdálené umístění:
rsync -a remote_user@remote_host_or_ip:/opt/media/ /opt/media/
Pokud SSH na vzdáleném hostiteli naslouchá na jiném než výchozím portu 22, zadejte port pomocí -e
možnost:
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 rsync
příkaz uvnitř relace obrazovky nebo použít -P
možnost:
rsync -a -P remote_user@remote_host_or_ip:/opt/media/ /opt/media/
Vyloučit soubory a adresáře #
Existují dvě možnosti, jak vyloučit soubory a adresáře. První možností je použít --exclude
argument a na příkazovém řádku zadejte soubory a adresáře, které chcete vyloučit.
Při vyloučení souborů nebo adresářů musíte použít jejich relativní cesty ke zdrojovému umístění.
Následující příklad ukazuje, jak vyloučit node_modules
a tmp
adresáře:
rsync -a --exclude=node_modules --exclude=tmp /src_directory/ /dst_directory/
Druhou možností je použít --exclude-from
a zadejte soubory a adresáře, které chcete ze souboru vyloučit.
rsync -a --exclude-from='/exclude-file.txt' /src_directory/ /dst_directory/
/exclude-file.txtnode_modules
tmp
Závěr č.
Ukázali jsme vám, jak používat Rsync ke kopírování a synchronizaci souborů a adresářů. Na stránce uživatelské příručky Rsync se můžete o Rsync dozvědět mnohem více.
Pokud máte nějaké dotazy, neváhejte zanechat komentář.