quanto è affidabile sarebbe il download di oltre 100.000 file con wget da un bash file tramite ssh?

StackOverflow https://stackoverflow.com/questions/380341

  •  22-08-2019
  •  | 
  •  

Domanda

Ho un bash file che contiene comandi: wget per scaricare oltre 100.000 file un totale di circa 20gb di dati.

Il bash file sembra qualcosa di simile:

wget http://something.com/path/to/file.data

wget http://something.com/path/to/file2.data

wget http://something.com/path/to/file3.data

wget http://something.com/path/to/file4.data

E ci sono esattamente 114,770 righe di questo.Quanto è affidabile sarebbe ssh ad un server ho un account su ed eseguire questo?Sarebbe la mia sessione ssh tempo alla fine?avrei dovuto essere ssh cantando in tutto il tempo?Cosa succede se il mio computer locale si è schiantato/ha spento?

Inoltre, qualcuno sa quante risorse di questo vorresti prendere?Sono pazzo a voler fare questo su un server condiviso?

So che è una domanda strana, chiedo solo se qualcuno ha idee.Grazie!

È stato utile?

Soluzione

Utilizzare

#nohup ./scriptname &>logname.registro

Questo farà sì

  • Il processo continuerà anche se una sessione ssh è interrotto
  • La si può controllare, come è in azione

Si consiglia, inoltre, che si può avere alcuni comandi, ad intervalli regolari, sarà un bene per l'analisi di log.ad es. #echo "1000 files copied"


Quanto riguarda l'utilizzo delle risorse in questione, dipende interamente dal sistema e majorly caratteristiche della rete.Teoricamente si può callculate la Dimensione dei Dati e larghezza di Banda.Ma nella vita reale, ritardi, tempi di latenza, e dati-perdite entrano in foto.

Quindi, fare alcune assuptions, fare un po ' di matematica e si otterrà la risposta :)

Altri suggerimenti

Dipende l'affidabilità del mezzo di comunicazione, hardware, ...!

È possibile utilizzare screen per mantenere in esecuzione mentre si disconnette dal computer remoto.

Si desidera scollegare lo script dalla shell e lo hanno eseguito in background (utilizzando nohup), in modo che esso continua a funzionare quando si esce.

È anche voler avere un qualche tipo di indicatore di progresso, come ad esempio un file di log che registra tutti i file che è stato scaricato, e anche tutti i messaggi di errore. Nohup manda stderr e stdout in file. Con un tale file, è possibile raccogliere i download interrotti e corre abortiti in seguito.

Fare un test-run prima con un piccolo insieme di file per vedere se hai il comando verso il basso e, come l'uscita.

Vi suggerisco di staccarlo dalla vostra shell con nohup.

$ nohup myLongRunningScript.sh > script.stdout 2>script.stderr &
$ exit

Lo script verrà eseguito fino al completamento -. Non è necessario aver effettuato l'accesso per tutto

Non verificare eventuali opzioni che si possono dare wget per farlo riprovare in caso di fallimento.

Se è possibile, generare checksum MD5 per tutti i file e usarlo per controllare se sono tutti stati trasferiti correttamente.

Inizia con

nohup ./scriptname &

e si dovrebbe andare bene. Inoltre mi sento di raccomandare che si accede i progressi in modo che si sarebbe in grado di scoprire dove si è fermato se lo fa.

wget url >>logfile.log

potrebbe essere sufficiente.

Per monitorare i progressi si potrebbe vivere:

tail -f logfile.log

Può essere vale la pena di guardare una tecnologia alternativa, come rsync . L'ho usato su molti progetti e funziona molto, molto bene.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top