2009-10-01 4 views
6

Я написал скрипт, который имеет такую ​​функцию:локона повторить попытку по истечению времени ожидания

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

Проблема заключается в том, если время сайта из то, что страница будет пропущена, мне это нужно повторить если он истечет (я также буду сдавать 60-секундный тайм-аут).

Как это сделать?

ответ

8

Вы можете использовать --retry <num> для принудительных повторов. Альтернативный способ - добавить -w http_code, чтобы узнать, что представляет собой код возврата ... если это не 200, повторите попытку.

+0

Теперь почему я думаю об этом, значение тайм-аута 10 секунд с 50 повторениями (я очень сомневаюсь, что когда-нибудь понадобится больше 3) – Hintswen

+3

Есть ли способ повторить попытку, когда ошибка является недоступной для хоста или отказался от соединения? – jrwren

+0

Вы можете использовать: --writeout {http_code} И проанализируйте результат. Curl вернет 0, если не сможет подключиться, иначе код состояния. –

Смежные вопросы