Portál AbcLinuxu, 1. června 2024 10:34

Jak navázat nedokončený přenos přes scp?

Znáte to, kopírujete něco velkého, neodhadnete čas a najednou zjistíte, že musíte zaklapnout notebook a běžet na schůzku. Nebo vypadne připojení k Internetu. Naštěstí to rsync jistí!

Aby bylo jasno, spustili jste tedy přenos třeba takto:

scp komp:/velky_soubor.ext komp_velky_soubor.ext

Tento příkaz byl nějakým způsobem přerušen a vy máte pouze část přenášeného souboru. Pro navázání lze použít:

rsync --partial --progress --rsh=ssh komp:/velky_soubor.ext komp_velky_soubor.ext

Přepínač --partial je klíčový, díky němu přenos naváže. Přepínač --progress je volitelný, ale v interaktivním režimu se hodí, protože uvidíte průběh přenosu. Bez --rsh=ssh by váš přenos nebyl šifrovaný, takže by to bylo oproti scp nebezpečné.

Běží-li na serveru sshd na jiném než standardním portu (22), potom vám přepínač rsyncu --port nepomůže. Místo toho je třeba jako rsh (tj. remote shell) předat např. "ssh -p 443" (pro port 443). Příkaz by tedy vypadal takto:

rsync --partial --progress --rsh="ssh -p 443" komp:/velky_soubor.ext komp_velky_soubor.ext

Na první pohled se může zdát, že přenos začal odznova, protože se nejprve ukáže 0 dokončených procent, ale neděste se, protože pokud byl skutečně nalezen částečně stažený soubor, je toto v pořádku - před samotným navázáním přenosu se totiž nejprve kontroluje již stažená část, což je poměrně rychlá záležitost (bottleneck je zde harddisk na zdrojovém stroji). Toť vše. Můžete si nastavit třeba alias:

alias scpresume="rsync --partial --progress --rsh=ssh"

Pozn: velikost stahovaneho souboru se zmeni az pri ukonceni procesu (preruseni, nebo dokoceni).

Dokument vytvořil: David Watzke, 14.10.2010 15:52 | Poslední úprava: gorgo, 4.12.2010 16:09 | Další přispěvatelé: David Watzke | Historie změn | Zobrazeno: 2383×

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.