Úvod
Rsync znamená „Remote Sync“. rsync
umožňuje přenášet a synchronizovat data mezi různými počítači a adresáři. Pomocí protokolu Secure Shell (SSH) můžete své soubory bezpečně zkopírovat na jiné místo.
Nástroj rsync má ve srovnání s jinými metodami kopírování souborů mnoho výhod. Při odesílání a přijímání souborů používá kompresi i dekompresi. Nástroj pouze přenáší nové nebo aktualizované soubory, šetří šířku pásma a přináší rychlejší přenosové časy.
Podle tohoto průvodce se dozvíte, jak používat rsync přes SSH k přenosu nebo kopírování souborů.
Předpoklady
- Uživatel s sudo nebokořen privilegia
- Přístup SSH na server pomocí příkazového řádku/okna terminálu
- Rsync nainstalovaný na místním a cílovém počítači
Ověřte instalaci Rsync
Nejnovější distribuce Linuxu mají rsync ve výchozím stavu. Chcete-li ověřit, že váš systém má nainstalovaný rsync, spusťte instalační příkaz.
Pro Debian a Ubuntu počítače, použijte apt-get
:
sudo apt-get install rsync
Pokud je již rsync nainstalován, výstup zobrazuje aktuální verzi nástroje.
Na podle RPM počítače, jako je CentOS, používají:
sudo yum install rsync
Přenos souborů pomocí Rsync přes SSH
Než budete moci začít přenášet soubory a adresáře pomocí rsync přes SSH, ujistěte se, že můžete použít SSH pro připojení ke vzdálenému serveru. Po ověření můžete začít zálohovat svá data. Ujistěte se, že váš cílový systém má dostatek úložného prostoru.
Syntaxe pro kopírování souborů na vzdálený server přes SSH pomocí rsync
příkaz je:
rsync OPTION SourceDirectory_or_filePath [email protected]_or_name:Target
Příklady příkazů rsync
Postupujte podle zbytku průvodce a prohlédněte si příklady nejběžnějších případů použití nástroje rsync .
Přeneste konkrétní soubor pomocí Rsync
Chcete-li přenést jeden soubor na vzdálený počítač, zadejte úplnou cestu ke zdrojovému souboru. Například:
rsync ~/Dir1/source.pdf [email protected]:~/Desktop/test
Ujistěte se, že používáte uvozovky pro soubory, které obsahují mezery v názvu. Například:
rsync ~/Desktop/Dir1/"source pdf sample.pdf" [email protected]:~/Desktop/test
Přenos obsahu adresáře pomocí Rsync
Při synchronizaci obsahu adresáře pomocí rsync přes SSH existuje několik možností.
Chcete-li přenést všechny soubory ze zdrojového adresáře do cíle na vzdáleném hostiteli, zadejte:
rsync ~/SourceDirectory/* [email protected]:~/Destination
Hvězdička (*) dává nástroji pokyn, aby zahrnul všechny soubory ve zdrojovém adresáři. Podadresáře nejsou převedeno .
Například:
Výstup zobrazuje adresáře, které rsync během přenosu vynechal.
Chcete-li zahrnout všechny podadresáře ze zdrojového adresáře, použijte -r
(rekurzivní) nebo -a
(archiv) volba. -a
vlajka je to, co doporučujeme. Tato možnost se synchronizuje rekurzivně a zachovává všechna oprávnění a nastavení souborů. Tentokrát hvězdičku nepoužívejte ve zdrojové cestě.
rsync -a ~/Desktop/Dir1/ [email protected]:~/Desktop/test
Když spustíte příkaz v tomto formátu, rsync přenese všechny soubory a podadresáře ze zdrojového adresáře do cílového umístění. Z našeho příkladu výše, test složka bude mít obsah Dir1 zdroj po dokončení přenosu.
Chcete-li vynechat soubory z kopírování, podívejte se na naši příručku, jak vyloučit soubory a adresáře z přenosu dat pomocí příkazu rsync.
Zkontrolujte průběh přenosu souborů Rsync
Chcete-li zkontrolovat stav přenosů rsync, použijte -P
volba. Tato možnost zobrazuje časy přenosu a také názvy souborů a adresářů, které jsou synchronizovány.
Pokud dojde k problému s připojením a dojde k přerušení synchronizace, -P
obnoví vaše převody.
Spusťte příkaz v tomto formátu pro rekurzivní synchronizaci a zkontrolujte stav přenosu:
rsync -aP ~/SourceDirectory/ [email protected]:~/Destination
Například:
Pokud znovu spustíte stejný příkaz, když ve zdrojovém adresáři nedošlo k žádným změnám, přenos neproběhne. Důvodem je, že rsync přenáší pouze úpravy v souborech a nové soubory. V tomto případě výstup zobrazuje pouze následující řádek:
Pokud dojde ke změně byť jen v jednom zdrojovém souboru, rsync ji detekuje a synchronizuje s cílem.
Provedli jsme změnu v jednom souboru a znovu spustili stejný příkaz:
Výstup zobrazuje zdrojový vzorek2 soubor byl přenesen, protože rsync zjistil, že jsme soubor upravili.