Jak zkopírovat složku ze vzdálené do místní pomocí scp?

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?

Řešení
scp -r user@your.server.example.com:/path/to/foo /home/user/Desktop/

Z man scp (Viz online manuál)

-r Rekurzivní kopírování celých adresářů

Komentáře (11)

Chcete-li využít plný výkon scp, musíte projít dalšími kroky:

  1. Outorizace veřejného klíče
  2. Vytvoření aliasů ssh.

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 a 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

Komentáře (10)

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 user@your.server.example.com:/path/to/backup.tar.gz .

Na konci rozbalte soubory:

tar -xzvf backup.tar.gz
Komentáře (2)