Hvordan kopiere en mappe fra ekstern til lokal ved hjelp av scp?

Hvordan kopiere en mappe fra ekstern til lokal vert ved hjelp av scp?

Jeg bruker ssh for å logge på serveren min.
Deretter vil jeg kopiere den eksterne mappen foo til lokal /home/user/Desktop.

Hvordan gjør jeg dette?

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

Fra man scp (Se online manual)

-r Rekursivt kopiere hele kataloger

Kommentarer (11)

For å bruke full effekt av scp må du gå gjennom de neste trinnene:

  1. Offentlig nøkkelautorisasjon
  2. Opprett ssh-alias

Deretter, for eksempel hvis du har denne ~/.ssh/config:

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

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

du' vil spare deg for passordoppføring og forenkle scp syntaks som dette:

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

I tillegg vil du kunne bruke remote path-completion:

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

Oppdatering:

For å aktivere ekstern bash-komplettering må du ha bash-shell på både og verter, og riktig fungerende bash-komplettering. For mer informasjon, se relaterte spørsmål:

Hvordan aktivere autofullføring for eksterne baner når du bruker scp?
Utfylling av SCP-fanen for filnavn

Kommentarer (10)

Bedre å først komprimere katalogen på en ekstern server:

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

For det andre, last ned fra ekstern:

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

Til slutt pakker du ut filene:

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