Pokud jde o přenos souborů mezi systémy v síti, uživatelé Linuxu a Unixu mají k dispozici spoustu nástrojů.
Nejoblíbenější protokoly pro přenos dat jsou SSH a FTP. I když je FTP velmi populární, vždy preferujte použití SSH, protože je to nejbezpečnější způsob přenosu souborů.
Existují specializované nástroje pro přenos souborů přes SSH, jako je scp a sftp ale žádný z nich nemá všechny funkce, které rsync poskytuje. rsync lze použít pro zrcadlení dat, přírůstkové zálohy, kopírování souborů mezi systémy a tak dále.
V tomto tutoriálu vysvětlíme, jak kopírovat soubory pomocí rsync přes SSH.
Požadavky #
-
rsyncobslužný program musí být nainstalován na cílovém i zdrojovém systému. Pokud není nainstalován, můžete jej nainstalovat pomocí správce balíčků vaší distribuce:Ubuntu a Debian:
sudo apt install rsyncCentOS a Fedora:
sudo yum install rsync -
SSH přístup ke vzdálenému počítači.
-
Uživatel spouštějící
rsynca vzdálený uživatel SSH musí mít příslušná oprávnění ke čtení a zápisu souborů.
Používání rsync k přenosu souborů přes SSH #
Pomocí rsync , můžete přenášet soubory a adresáře přes SSH ze a na vzdálené servery.
Obecná syntaxe pro přenos souborů pomocí rsync je následující:
Local to Remote: rsync [OPTION]... -e ssh [SRC]... [USER@]HOST:DEST
Remote to Local: rsync [OPTION]... -e ssh [USER@]HOST:SRC... [DEST]
Kde SRC je zdrojový adresář DEST je cílový adresář USER je vzdálené uživatelské jméno SSH a HOST je vzdálený hostitel SSH nebo IP adresa.
Novější verze rsync jsou nakonfigurovány tak, aby používaly SSH jako výchozí vzdálený shell, takže můžete vynechat -e ssh možnost.
Například pro přenos jednoho souboru /opt/file.zip z místního systému do /var/www/ adresář na vzdáleném systému s IP 12.12.12.12 běželi byste:
rsync -a /opt/file.zip [email protected]:/var/www/
-a volba znamená archivační režim, který synchronizuje adresáře rekurzivně, přenáší speciální a bloková zařízení, zachovává symbolické odkazy, časy úprav, skupiny, vlastnictví a oprávnění.
Pokud jste na vzdáleném počítači nenastavili přihlášení SSH bez hesla, budete vyzváni k zadání uživatelského hesla.
Pokud soubor na vzdáleném serveru existuje, bude přepsán. Pokud chcete soubor uložit pod jiným názvem, zadejte nový název:
rsync -a /opt/file.zip [email protected]:/var/www/file2.zip 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 a místní umístění jako cíl:
rsync -a [email protected]:/var/www/file.zip /opt/
Přenos adresářů pomocí rsync přes SSH je stejné jako přenos souborů.
Je důležité vědět, že rsync poskytuje odlišné zacházení se zdrojovými adresáři s koncovým lomítkem / . Pokud má zdrojový adresář koncové lomítko, rsync zkopíruje pouze obsah zdrojového adresáře do cílového adresáře. Pokud je koncové lomítko vynecháno, zdrojový adresář bude zkopírován do cílového adresáře.
Například pro přenos místního /opt/website/images/ do adresáře /var/www/images/ adresář na vzdáleném počítači, který byste napsali:
rsync -a /home/linuxize/images/ [email protected]:/var/www/images/
Použijte --delete Pokud chcete synchronizovat místní a vzdálený adresář. Při používání této možnosti buďte opatrní, protože smaže soubory v cílovém adresáři, pokud ve zdrojovém adresáři neexistují.
rsync -a --delete /home/linuxize/images/ [email protected]:/var/www/images/
Pokud SSH na vzdáleném hostiteli naslouchá na jiném portu, než je výchozí 22 , zadejte port pomocí -e volba. Například pokud SSH naslouchá na portu 3322 byste použili:
rsync -a -e "ssh -p 3322" /home/linuxize/images/ [email protected]:/var/www/images/
Při přenosu velkého množství dat se doporučuje spustit rsync příkaz uvnitř relace obrazovky nebo použijte -P možnost, která říká rsync pro zobrazení indikátoru průběhu během přenosu a zachování částečně přenesených souborů:
rsync -a -P /home/linuxize/images/ [email protected]:/var/www/images/ Závěr č.
Ukázali jsme vám, jak používat rsync přes SSH ke kopírování a synchronizaci souborů a adresářů.
Můžete si také přečíst, jak vyloučit soubory nebo adresáře pomocí rsync .
Pokud máte nějaké dotazy, neváhejte zanechat komentář.