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 #
-
rsync
obsluž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 rsync
CentOS a Fedora:
sudo yum install rsync
-
SSH přístup ke vzdálenému počítači.
-
Uživatel spouštějící
rsync
a 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ář.