2017-08-17 37 views
0

背景:私はwgetのを使用しています
(バージョン1.14-15.el7)bashでのRedHat Linuxの(バージョン7.3(マイポ))、(バージョン4.2.46(1に)) ターミナル。待機機能が期待通りに動作しない

残念ながら、この特定のRHELイメージに限定されているため、新しいバージョンのwgetにアップグレードすることはできません。

目標:
私はダウンロードの試みが失敗した場合、それは以下のないようにwgetコマンドを設定しようとしています。)
1)ダウンロードを4回(5回の合計)
2を再試行コンテキストの場合は、ダウンロードの試み(「再試行」)

間の一定時間(30秒)待機し、ここではwgetのマニュアルの関連抜粋です:

-w seconds 
    --wait=seconds 
     Wait the specified number of seconds between the retrievals. Use of this option is 
     recommended, as it lightens the server load by making the requests less frequent. 
     Instead of in seconds, the time can be specified in minutes using the "m" suffix, in 
     hours using "h" suffix, or in days using "d" suffix. 

     Specifying a large value for this option is useful if the network or the destination 
     host is down, so that Wget can wait long enough to reasonably expect the network error 
     to be fixed before the retry. The waiting interval specified by this function is 
     influenced by "--random-wait", which see. 

    --waitretry=seconds 
     If you don't want Wget to wait between every retrieval, but only between retries of 
     failed downloads, you can use this option. Wget will use linear backoff, waiting 1 
     second after the first failure on a given file, then waiting 2 seconds after the second 
     failure on that file, up to the maximum number of seconds you specify. 

     By default, Wget will assume a value of 10 seconds. 

明確にするには、私はフラグを使用していますが、--waitretryフラグは使用していません。

プロセス:

まず、私は、任意のダウンロード試行がタイムアウトします保証するために、間違ったHTTP_PROXYを設定し、HTTPS_PROXY /エクスポートします。予想通り--wait機能が動作しない、この時点で wget --tries=5 --wait=30 <url> -O <output_filename>

は、私は、次のコマンドを実行します。具体的には、ダウンロードのたびに30秒待つことはありません。

代わりに
1)最初の試行後、1秒間待機します。
2)2回目の試行後、2秒間待機します。
3)3回目の試行後、3秒間待機します。
など...言い換える

は、(ダウンロード試行の間の固定された待機時間をもたらすはずである)--waitフラグを使用してもかかわらず、Wgetは--waitretryに記載されているように「線形バックオフ」を実行しているようですフラグセクション。

問題:
私は--waitフラグの機能は、NOT --waitretryフラグをしたいです。

は残念ながら、--waitフラグが--waitretry旗のように作用しているように見える - 予想に--waitフラグ結果を使用すると、ダウンロードの試行の間の時間を待って固定するようにwgetでこの明らかなバグを回避する方法は、ありますか?

+0

一般的なコンピューティングのハードウェアおよびソフトウェアに関する質問は、主にプログラミングに使用するツールを直接使用しない限り、スタックオーバーフローに関するトピックではありません。あなたはhttps://superuser.com/questions/tagged/linuxで助けを得ることができるかもしれません – tink

+0

ありがとう、私はそこに移動します。 – Seth

答えて

0

あなたが提供した--helpダイアログに表示されているように、get --tries=5 --waitretry=30 <url> -O <output_filename>のようなコマンドを--waitretryに使用できるはずです。

+0

ありがとうございますが、実際には '--waitretry'が提供する機能(wgetが線形バックオフを実行する機能)を望んでいません。私はダウンロード試行の間に一定量の時間を待つwgetを探しています。これは '--wait'フラグによって提供されるべきですが、なんらかの理由で動作してはいけません。 – Seth

+0

- 'waitit'はタイムアウトのようなもので、試行間のスリープではなくx秒間の応答を待ちます。 --wait = 30を指定すると、要求が送信され、タイムアウトのために30秒間待機します。 –

関連する問題