wgetダウンロード速度の下限

wgetダウンロード速度の下限

.を使用していくつかのファイルをダウンロードしようとしていますが、wget1時間後にダウンロード速度が低下します。ダウンロードをキャンセルして再開すると、ダウンロード速度が1時間ずつ速くなります。

wget速度がそのしきい値を下回ると、再起動または再開するようにダウンロード速度の下限を設定できますかwget

答え1

代わりに、基本的な問題を解決する必要があります。そのため、接続速度が遅くなる理由を分析し、原因を取り除いてください。

省電力機能の場合は、ほぼ確実にその機能をオフにするか、ネットワークに影響を与えないように設定できます。

答え2

しばらくすると、ダウンロードしているWebサイトまたはISPが帯域幅を制限する可能性があります。転送速度を制限するのに役立ちます--limit-rate

wgetに終了を指示するいくつかのオプションがあります。--tries()を使用して-t再試行回数を制御します。再試行速度を少し調整すると、より良い--wait結果が得られます--wait-random。サーバーがこれをサポートしている場合、Wgetは停止した場所から自動的に再開されます。転送速度が非常に低い数値に制限され、--read-timeout非常に小さいパラメータ(たとえば、0.110分の1秒)を使用して速度が0.1秒ごとに1パケット未満に低下すると、接続が再開されます。ネットワーク障害が原因でこの間にパケットが受信されなかった場合、接続も再開されます。

制限されるまでの残り時間を事前に知っている場合は、wgetプロセスを終了して-cダウンロードを再開するオプションを使用して再起動するシェルフラグメントを作成してください。警告、テストされていません。シェルでバックグラウンドサブプロセスを使用することは少し以上であるため、深刻な操作にはPerlまたはPythonを使用することをお勧めします。

while wget -q -c http://example.com/wibble & wget_pid=$!
      { sleep 300; kill $wget_pid; } & kill_pid=$!
      wait $wget_pid
      kill $kill_pid
      wait
do sleep 10; done

答え3

read-timeout私のバージョンのwgetは、以下のようにダウンロードタイムアウトなしで再試行をサポートします。

$ wget -c --read-timeout=5 http://thefile.com/getme.txt

36% [+++++++++++++++++++++++++++++++++++++++++++======>                                                                                        ] 280,061,984 --.-K/s   in 6m 16s  

2012-05-09 16:04:23 (105 KB/s) - Read error at byte 280061984/761323675 (Operation timed out). Retrying.

より低い制限を設定する方法はないようですが、進行中のダウンロードにはたくさん役立ちます。他の人がこの質問を検索したいと思います。

関連情報