2009-10-01 9 views
6

J'ai écrit un script shell qui a une fonction comme ceci:CURL Retry On délai d'attente

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

Le problème est de savoir si les temps de site sur cette page sera ignorée, j'ai besoin pour réessayer si cela expire (je mettrai également un délai de 60 secondes).

Comment faire?

Répondre

8

Vous pouvez utiliser --retry <num> pour les tentatives forcées. Une autre façon est d'ajouter -w http_code pour voir ce que le code retour est ... si ce n'est pas 200, puis essayez à nouveau.

+0

maintenant pourquoi dint je pense à cela, la valeur de délai de 10 secondes avec 50 tentatives (je doute fortement qu'il en faudra toujours plus de 3) – Hintswen

+3

Y at-il un moyen de réessayer lorsque l'hôte est inaccessible ou la connexion refusée? – jrwren

+0

vous pouvez utiliser: - écriture {http_code} Et analyser le résultat. Curl renverra 0 si impossible de se connecter, sinon le code d'état. –