it-swarm-ja.com

一定期間を超えてダウンロードした後にwgetをタイムアウトに設定する方法

Wgetにダウンロードを開始させたい(試みてもらいたい)のですが、10秒経ってもダウンロードが完了しない場合は、あきらめたいと思います。

wget --timeout 10 http://url

妥当な試みのようですが、-dns-timeout、-connect-timeout、および--read-timeoutのみを設定しているようです。したがって、データが一定のペースで送信され続ける限り(10秒以上の一時停止がない限り)、DNSを9秒間待機し、接続をさらに9秒間待機してから、永久にダウンロードを続けることができます。

5
johv

基本的に、これは次のようになります。

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

これはあなたが求めているものではありません正確にこれはダウンロードが10秒以上アイドル状態の場合にのみWgetをタイムアウトさせるはずです:

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

関して --read-timeoutオプション、 Wget 1.13.4 Manual

読み取り(および書き込み)タイムアウトを秒秒に設定します。このタイムアウトの「時間」はアイドル時間を指します。ダウンロードのいずれかの時点で、指定された秒数を超えてデータが受信されない場合、読み取りは失敗し、ダウンロードが再開されます。このオプションは、ダウンロード全体の期間に直接影響しません。

0
Kenny Evitt