wget にダウンロードを開始 (試行) させ、10 秒経過しても完了しない場合は中止するようにします。
wget --timeout 10 http://url
妥当な試みのように思えますが、--dns-timeout、--connect-timeout、および --read-timeout のみを設定するようです。したがって、データが一定のペースで送信され続ける限り (10 秒以上の一時停止なし)、DNS に 9 秒、接続にさらに 9 秒待機し、その後永久にダウンロードを続けることができます。
答え1
基本的には次のようになります:
wget http://www.somesite.com/file.zip &
PID=$!
sleep 10
if [ `ps ax | grep $PID` -ne '' ]
then
kill $PID
fi
答え2
これはその通りあなたが尋ねているのは、ダウンロードが 10 秒以上アイドル状態になった場合にのみ Wget がタイムアウトになるはずだということです。
wget --read-timeout= 10 http://url
オプションについては--read-timeout
、Wget 1.13.4 マニュアル:
読み取り (および書き込み) タイムアウトを seconds 秒に設定します。このタイムアウトの「時間」はアイドル時間を指します。ダウンロードのどの時点でも、指定された秒数を超えてデータが受信されない場合は、読み取りが失敗し、ダウンロードが再開されます。このオプションは、ダウンロード全体の期間に直接影響しません。