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?
scp -r [email protected]:/path/to/foo /home/user/Desktop/
Fra man scp
(Se online manual)
-r Rekursivt kopiere hele kataloger
For å bruke full effekt av scp må du gå gjennom de neste trinnene:
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 <source>
og <target>
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
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 [email protected]:/path/to/backup.tar.gz .
Til slutt pakker du ut filene:
tar -xzvf backup.tar.gz