Come si copia una cartella dall'host remoto all'host locale utilizzando scp
?
Uso ssh
per accedere al mio server.
Quindi, vorrei copiare la cartella remota foo
in locale /home/user/Desktop
.
Come posso raggiungere questo obiettivo?
Come si copia una cartella dall'host remoto all'host locale utilizzando scp
?
Uso ssh
per accedere al mio server.
Quindi, vorrei copiare la cartella remota foo
in locale /home/user/Desktop
.
Come posso raggiungere questo obiettivo?
Risposte:
scp -r user@your.server.example.com:/path/to/foo /home/user/Desktop/
Non includendo il finale "/" alla fine di pippo, si sposterà la directory stessa (compresi i contenuti), anziché solo i contenuti della directory.
Da man scp
(vedi manuale online )
-r Copia ricorsivamente intere directory
-C
bandiera aggiunge compressione e la -c
bandiera ti permette di passare altri tipi di cifra per prestazioni migliori, come si scp -c blowfish a@b:something .
vede nella risposta di dimuthu
Desktop/foo
o dovrete Desktop/allcontentsofFooGohere
SCP sembra agire a volte strano per me che fa una cosa poi un'altra
scp -r user@your.server.example.com:/path/to/foo /home/user/Desktop/
te dovrebbe finire con Desktop/foo
. Con scp -r user@your.server.example.com:/path/to/foo/. /home/user/Desktop/
te finirai con il contenuto di foo
in Desktop
e tutti i sottodiretti di foo
sparso sottoDesktop
Per usare tutta la potenza di SCP devi seguire i seguenti passi:
Quindi, ad esempio se hai questo ~ / .ssh / config :
Host test
User testuser
HostName test-site.com
Port 22022
Host prod
User produser
HostName production-site.com
Port 22022
ti salverai dall'inserimento della password e semplificherai 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, sarai in grado di utilizzare il completamento del percorso remoto:
scp test:/var/log/ # press tab twice
Display all 151 possibilities? (y or n)
Aggiornare:
Per abilitare il completamento bash remoto è necessario disporre di shell bash su entrambi <source>
e <target>
host e il completamento bash funziona correttamente. Per ulteriori informazioni, consultare le domande correlate:
Come abilitare il completamento automatico per i percorsi remoti quando si utilizza scp?
Completamento della scheda nome file SCP
Per copiare tutto dalla posizione locale alla posizione remota (carica)
scp -r /path/from/destination username@hostname:/path/to/destination
Per copiare tutto dalla posizione remota alla posizione locale (download)
scp -r username@hostname:/path/from/destination /path/to/destination
Porta personalizzata in cui xxxx
è il numero di porta personalizzato
scp -r -P xxxx username@hostname:/path/from/destination /path/to/destination
Copia sulla directory corrente da remoto a locale
scp -r username@hostname:/path/from/file .
Aiuto:
-r
Copia ricorsivamente tutte le directory e i file/
, Ottieni la posizione completa entropwd
scp
sostituirà tutti i file esistentihostname
sarà nome host o indirizzo IP-P portnumber
Nota: a volte la porta personalizzata non funziona a causa della porta non consentita nel firewall, quindi assicurarsi che la porta personalizzata sia consentita nel firewall per la connessione in entrata e in uscita
pwd
per ottenere la posizione e utilizzare lo stesso
Quello che uso sempre è:
scp -r username@IP:/path/to/server/source/folder/ .
. (punto) : significa current folder
. quindi copia dal server e incollalo solo qui.
IP : può essere un indirizzo IP simile 125.55.41.311
o può essere un host ns1.mysite.com
.
.
riferisce alla directory corrente!
Meglio comprimere prima il catalogo sul server remoto:
tar czfP backup.tar.gz /path/to/catalog
In secondo luogo, scarica da remoto:
scp user@your.server.example.com:/path/to/backup.tar.gz .
Alla fine, estrai i file:
tar -xzvf backup.tar.gz
-C
bandiera, come scp -C a@b:bigfile .
.
E se hai un inferno di file da scaricare dalla posizione remota e se non ti interessa molto la sicurezza, prova a cambiare la crittografia predefinita di scp (Triple-DES) in qualcosa come "blowfish".
Ciò ridurrà drasticamente il tempo di copia dei file.
scp -c blowfish -r user@your.server.example.com:/path/to/foo /home/user/Desktop/
arcfour
al posto di blowfish
, ma ha difetti di sicurezza.
Scenario tipico,
scp -r -P port username@ip:/path-to-folder .
spiegato con un campione,
scp -r -P 27000 abc@10.70.12.12:/tmp/hotel_dump .
dove,
port = 27000
username = "abc" , remote server username
path-to-folder = tmp/hotel_dump
. = current local directory
La domanda era come copiare una cartella da remoto a locale con scp
comando.
$ scp -r userRemote@remoteIp:/path/remoteDir /path/localDir
Ma ecco il modo migliore per farlo con sftp
- Il protocollo SSH File Transfer Protocol (anche Secure File Transfer Protocol o SFTP) è un protocollo di rete che fornisce l'accesso ai file, il trasferimento e la gestione dei file su qualsiasi flusso di dati affidabile (wikipedia).
$ sftp user_remote@remote_ip
sftp> cd /path/to/remoteDir
sftp> get -r remoteDir
Fetching /path/to/remoteDir to localDir 100% 398 0.4KB/s 00:00
Per assistenza sul sftp
comando basta digitare help
o ?
.
Non so perché ma dovevo usare la cartella locale prima della direttiva del server di origine. per farlo funzionare
scp -r . root@888.888.888.888:/usr/share/nginx/www/example.org/
root@