--, -K/s
状況を回避するために使用できます--read-timeout=seconds
。これにより、数秒後に接続がタイムアウトします。
それを超える必要がある場合は、このセットアップを使用できます
wget --retry-connrefused --waitretry=1 --read-timeout=20 --timeout=15 -t 0
これは拒否された接続と同様の致命的なエラーを--retry-connrefused
再試行し(--waitretry
)、次の再試行の1秒前に待機し()、データが受信されない場合に最大20秒待機してから再試行します()、--read-timeout
最大15秒待機します最初の接続がタイムアウトする前に(--timeout
)、最後に無限の回数再試行し-t 0
ます()。
while
ローカルネットワークの障害などを回避するために、これをループに入れることもできます。この場合--continue
、中断したところからダウンロードを続行するために追加する必要もあります。以下はBashでうまく機能します
while [ 1 ]; do
wget --retry-connrefused --waitretry=1 --read-timeout=20 --timeout=15 -t 0 --continue
if [ $? = 0 ]; then break; fi; # check return value, break if successful (0)
sleep 1s;
done;
ボーナスのヒントとして、--no-dns-cache
ホストがDNSによって複数のサーバー間でリクエストのバランスを取る場合にも使用できます。
免責事項:接続が不安定な場合にホストにスパムを送信し、監視しないでおくのは賢明ではないため、これを使用することはお勧めしません。ただし、これは本当に何かをダウンロードする必要があり、接続が適切に機能しない場合に必要なものです。
--read-timeout=900
。15分待つだけで、wgetはダウンロードを再開します。