2009-10-01 20 views
6

He escrito un script de shell que tiene una función como esta:Curl vuelva a intentar el tiempo de espera

function getpage { 
     echo $1 
     curl -O "http://www.example.com/$1" -b cookie.txt -s 
} 

El problema es que si los tiempos de sitios web a cabo luego de que la página se omitirá, lo necesito para volver a intentar si se agota el tiempo de espera (también pondré un tiempo de espera de 60 segundos).

¿Cómo puedo hacer esto?

Respuesta

8

Puede usar --retry <num> para reintentos forzados. Una forma alternativa es agregar -w http_code para ver cuál es el código de retorno ... si no es 200, inténtelo de nuevo.

+0

ahora, ¿por qué no pienso en ese valor de tiempo de espera de 10 segundos con 50 reintentos (dudo mucho que necesite más de 3) – Hintswen

+3

¿Hay alguna forma de volver a intentar cuando el host sea inaccesible o se rechace la conexión? – jrwren

+0

puede usar: --escribir {http_code} Y analizar el resultado. Curl devolverá 0 si no se puede conectar, de lo contrario, el código de estado. –

Cuestiones relacionadas