el grado de fiabilidad sería para descargar más de 100.000 archivos a través de wget desde un archivo de golpe a través de ssh?

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

  •  22-08-2019
  •  | 
  •  

Pregunta

Tengo un archivo bash que contiene los comandos wget para descargar más de 100.000 archivos por un total de alrededor de 20 GB de datos.

El archivo de golpe se ve algo como:

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

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

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

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

Y hay exactamente 114,770 filas de esto. ¿Qué tan confiable sería ssh en un servidor que tengo una cuenta en corro y esto? Haría mi sesión ssh tiempo de espera, finalmente? tendría que ser ssh'ed en todo el tiempo? ¿Qué pasa si mi equipo local chocó / consiguió cerrar?

Además, ¿alguien sabe cuántos recursos esto tomaría? ¿Estoy loco para querer hacer esto en un servidor compartido?

Sé que esto es una pregunta extraña, preguntando si alguien tiene alguna idea. Gracias!

¿Fue útil?

Solución

Uso

#nohup ./scriptname y> logname.log

Esto asegurará

  • El proceso continuará incluso si se interrumpe la sesión ssh
  • Puede supervisar que, como lo es en la acción

También se va a recomendar, que puede tener algún indicador a intervalos regulares, será bueno para el análisis de registros. p.ej. #echo "1000 files copied"


En lo que se refiere a la utilización de recursos, que en su totalidad depende del sistema y mayormente en las características de la red. Teóricamente se puede callculate el tiempo con sólo Tamaño de datos y ancho de banda. Pero en la vida real, los retrasos, las latencias, bases de datos en las pérdidas entran en la imagen.

Así que algunos assuptions, hacer algo de matemáticas y obtendrá la respuesta:)

Otros consejos

depende de la fiabilidad del medio de comunicación, hardware, ...!

Puede utilizar screen para que siga funcionando mientras se desconecta del ordenador remoto.

que desea desconectar el guión de su concha y hacer que se ejecute en segundo plano (usando nohup), para que siga funcionando al cerrar la sesión.

También quieren tener algún tipo de indicador de progreso, como un archivo de registro que registra cada archivo que se descargó, y también todos los mensajes de error. Nohup envía y stdout stderr en archivos. Con un archivo de este tipo, se puede recoger descargas rotas y corridas abortados más adelante.

Dale una ejecución de prueba primero con un pequeño conjunto de archivos para ver si tienes el comando hacia abajo y al igual que el de salida.

Le sugiero que separarlo de su concha con nohup.

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

El script se ejecutará hasta el final -. No necesita estar conectado a lo largo

No comprobar que no existen opciones que puede manejar wget para hacer que vuelva a intentar en caso de fallo.

Si es posible, generar sumas de comprobación MD5 para todos los archivos y utilizarlo para comprobar si todos ellos fueron transferidos correctamente.

Comience con

nohup ./scriptname &

y que debe estar bien. También recomendaría que se conecte el progreso para que usted sería capaz de averiguar donde se detuvo si lo hace.

wget url >>logfile.log

podría ser suficiente.

Para monitorear el progreso vivir usted podría:

tail -f logfile.log

Puede valer la pena que se vea a una tecnología alternativa, como rsync . Lo he utilizado en muchos proyectos y funciona muy, muy bien.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top