Hoe kopieer ik een map van remote naar local met scp?

Hoe kopieer ik een map van een remote naar een lokale host met scp?

Ik gebruik ssh om in te loggen op mijn server.
Daarna wil ik de externe map foo kopiëren naar de lokale /home/user/Desktop.

Hoe kan ik dit bereiken?

Oplossing
scp -r user@your.server.example.com:/path/to/foo /home/user/Desktop/

Van man scp (Zie online handleiding)

-r Recursief kopiëren van hele mappen

Commentaren (11)

Om de volledige kracht van scp te gebruiken, moet je de volgende stappen doorlopen:

  1. Public key authorisation
  2. Ssh aliassen aanmaken

Dan, bijvoorbeeld als u dit ~/.ssh/config:

Host test
    User testuser
    HostName test-site.com
    Port 22022

Host prod
    User produser
    HostName production-site.com
    Port 22022

bespaar je jezelf het invoeren van wachtwoorden en vereenvoudig je de scp syntaxis op deze manier:

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

Meer nog, je zal in staat zijn om remote path-completion te gebruiken:

scp test:/var/log/  # press tab twice
Display all 151 possibilities? (y or n)

Update:

Om bash-aanvullen op afstand mogelijk te maken moet je bash-shell op zowel als hosts hebben, en goed werkende bash-aanvullen. Voor meer informatie zie gerelateerde vragen:

Hoe autocompletion aan te zetten voor paden op afstand bij gebruik van scp?
SCP bestandsnaam tabblad voltooiing

Commentaren (10)

Het is beter om eerst de catalogus op de externe server te comprimeren:

tar czfP backup.tar.gz /path/to/catalog

Ten tweede, download van de remote server:

scp user@your.server.example.com:/path/to/backup.tar.gz .

Aan het einde, pak de bestanden uit:

tar -xzvf backup.tar.gz
Commentaren (2)