Come copiare una cartella da remoto a locale usando scp?

Come copiare una cartella dall'host remoto a quello locale usando scp?

Uso ssh per accedere al mio server.
Poi, vorrei copiare la cartella remota foo in locale /home/user/Desktop.

Come raggiungere questo obiettivo?

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

Da man scp (Vedere manuale online)

-r Copia ricorsivamente intere directory

Commentari (11)

Per usare tutta la potenza di scp devi passare attraverso i prossimi passi:

  1. Autorizzazione a chiave pubblica
  2. Creare alias ssh

Poi, per esempio se avete questo ~/.ssh/config:

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

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

vi salverete dall'inserimento della password e semplificherete la sintassi di scp in questo modo:

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

Inoltre, sarete in grado di utilizzare il completamento remoto del percorso:

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

Aggiornamento:

Per abilitare il bash-completion remoto è necessario avere bash-shell su entrambi gli host e, e bash-completion correttamente funzionante. Per maggiori informazioni vedere le domande correlate:

Come abilitare il completamento automatico per i percorsi remoti quando si usa scp?
Completamento scheda nome file SCP

Commentari (10)

Meglio comprimere prima il catalogo sul server remoto:

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

In secondo luogo, scaricare da remoto:

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

Alla fine, estrai i file:

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