Una volta che ho inviato il mio server remoto, quale sarebbe il comando per copiare tutti i file da una directory a una directory locale sulla mia macchina?
Una volta che ho inviato il mio server remoto, quale sarebbe il comando per copiare tutti i file da una directory a una directory locale sulla mia macchina?
Risposte:
Dal tuo computer locale:
rsync -chavzP --stats user@remote.host:/path/to/copy /path/to/local/storage
Dal tuo computer locale con una porta ssh non standard:
rsync -chavzP -e "ssh -p $portNumber" user@remote.host:/path/to/copy /local/path
O dall'host remoto, supponendo che tu voglia davvero lavorare in questo modo e il tuo computer locale stia ascoltando su SSH:
rsync -chavzP --stats /path/to/copy user@host.remoted.from:/path/to/local/storage
Vedi man rsync
una spiegazione dei miei soliti interruttori.
/path/to/local/storage
. In questo modo /path/to/local/storage/copy
. Se è quello che vuoi alla grande. Tuttavia, uno scenario più comune è che si desidera copiare il contenuto della directory remota in una directory nel proprio locale. Quindi faresti /path/to/copy/
che collocherebbe il contenuto all'interno della directory /path/to/local/storage
senza creare una directory di copia locale.
Se si dispone dell'accesso SSH, non è necessario prima SSH e quindi copiare, basta utilizzare la copia protetta (SCP) dalla destinazione.
scp user@host:/path/file /localpath/file
Sono supportati i caratteri jolly, quindi
scp user@host:/path/folder/* /localpath/folder
copierà tutti i file remoti in quella cartella. Se copi più di una directory.
note -r copierà anche tutte le sottocartelle e i contenuti.
scp
piuttosto che rsync
? Inoltre, osserva che la tua shell non tenta di espandersi user@host:/path/folder/*
, forse usando virgolette singole ( '
).
scp
, non era la mia domanda. Perché non hai usato rsync
? Questo è ciò che fa la domanda, non richiede una sessione SSH consolidata ed è spesso più veloce ed efficiente di scp
.
rsync
direttamente dal tuo computer locale.