5

Я хочу, чтобы wget (попытался) начать загрузку, а затем, если через 10 секунд это не будет сделано, я хочу, чтобы он сдался.

wget --timeout 10 http://url

Выглядит как разумная попытка, но кажется, что она устанавливает только --dns-timeout, --connect-timeout и --read-timeout. Таким образом, он может подождать 9 секунд для DNS, еще 9 секунд для подключения, а затем продолжать загрузку до тех пор, пока данные продолжают поступать с постоянной скоростью (без 10+ секундной паузы).

2 ответа2

1

В основном это будет что-то вроде:

wget http://www.somesite.com/file.zip &
PID=$!
sleep 10
if [ `ps ax | grep $PID` -ne '' ]
   then
   kill $PID
fi
0

Это не совсем то, о чем вы спрашиваете, так как это должно привести к тайм-ауту Wget только в том случае, если загрузка простаивает более 10 секунд:

wget --read-timeout= 10 http://url

О параметре --read-timeout из руководства Wget 1.13.4:

Установите время чтения (и записи) в секундах, секундах. «Время» этого тайм-аута относится к времени простоя: если в какой-либо момент загрузки данные не принимаются в течение более указанного количества секунд, чтение завершается неудачно и загрузка возобновляется. Эта опция напрямую не влияет на продолжительность всей загрузки.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .