Scarica molti file contemporaneamente tramite SSH


1

Voglio scaricare una cartella da un server contenente diverse migliaia di file usando ssh. Sto usando Ubuntu e non ho i permessi di scrittura sul server, quindi non sono in grado di creare un .tar sul server e copiarlo in seguito. Ma scaricare tutti i file singolarmente è molto lento.

Quindi, come posso scaricare questa cartella con tanti file come un archivio usando la riga di comando?

Risposte:


2

Potresti fare qualcosa del genere:

ssh username@hostname 'tar -cf - /dir/to/download' | gzip > remote_files.tgz

Questo eseguirà tar sul server remoto, ma invece di scrivere su un file, verrà emesso su stdout. Questo verrà restituito tramite SSH al tuo computer locale, compresso con gzip e quindi scritto in un file.


Se avessi abbastanza reputazione per votare, lo farei sicuramente;)
Patrick Weiß

1
Potrebbe essere meglio includere il comando gzip lato server per risparmiare l'utilizzo della larghezza di banda.
Jaap Eldering

Concordo con Jaap. ssh username@hostname 'tar -cf - /dir/to/download | gzip -9c' > remote_files.tgzpotrebbe risparmiare molta larghezza di banda se si copiano file di testo o qualcosa di facilmente compresso.
Bolwerk,

2

La copia protetta "scp" è installata con OpenSSH. Quindi questo dovrebbe fare il trucco ...

scp -r username@yourserver.com:/path/to/remote/files /path/to/local/files

-r Copia ricorsivamente intere directory.

man scp per tutti i dettagli.


Se avessi abbastanza reputazione per votare, lo farei sicuramente;)
Patrick Weiß

1

Entrambe le risposte precedenti funzioneranno, ma sono sorpreso che nessuno abbia menzionato rsync, come in:

rsync -az username@yourserver.com:/path/to/remote/files/ /path/to/local/files/

I punti bonus sono che se la connessione viene interrotta, è possibile riavviare e si scoprirà ciò che resta da copiare.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.