Jak zkopírovat složku ze vzdáleného na místního hostitele pomocí scp
?
Pro přihlášení na server používám ssh
.
Poté bych chtěl zkopírovat vzdálenou složku foo
do místní složky /home/user/Desktop
.
Jak toho dosáhnout?
scp -r [email protected]:/path/to/foo /home/user/Desktop/
Z man scp
(Viz online manuál)
-r Rekurzivní kopírování celých adresářů
Chcete-li využít plný výkon scp, musíte projít dalšími kroky:
Pakliže máte například tento ~/.ssh/config:
Host test
User testuser
HostName test-site.com
Port 22022
Host prod
User produser
HostName production-site.com
Port 22022
ušetříte si zadávání hesla a zjednodušíte si syntaxi scp takto:
scp -r prod:/path/foo /home/user/Desktop # copy to local
scp -r prod:/path/foo test:/tmp # copy from remote prod to remote test
Navíc budete moci používat vzdálené doplňování cest:
scp test:/var/log/ # press tab twice
Display all 151 possibilities? (y or n)
Aktualizace:
Pro povolení vzdáleného doplňování bash je třeba mít na obou hostitelích <source>
a <target>
bash-shell a správně fungující doplňování bash. Další informace naleznete v souvisejících otázkách:
Jak povolit automatické dokončování vzdálených cest při použití scp?
Doplňování tabulátorů názvů souborů SCP
Lepší je nejprve zkomprimovat katalog na vzdáleném serveru:
tar czfP backup.tar.gz /path/to/catalog
Za druhé stáhněte ze vzdáleného serveru:
scp [email protected]:/path/to/backup.tar.gz .
Na konci rozbalte soubory:
tar -xzvf backup.tar.gz