私は単純なcmd.exeバッチで、URLごとに1つのwget呼び出しを使用して、HTTP経由でファイルのセットをダウンロードするためにwgetを使用しています。wget試行の間に "スキップ"動作を抑制することは可能ですか?
また、私はランダムに、ミラー間で交互と同様に、各ミラーのために別のツリーを維持したい:私は今、何
http://server06//files/file1.txt -> temp\server06\files\file1.txt
http://server03//files/file65.txt -> temp\server03\files\file65.txt
は次のとおりです。
echo !url! | .\runners\wget.exe --tries=3 --force-directories --directory-prefix=.\temp\ --input-file=-
時にはそれがいくつかのために、ということを起こります理由、サーバーはTCP接続を閉じます。これを回避するには--tries=3
を使用しています。このような場合には、wgetののデフォルトの動作は、それがすでにダウンロードされたバイトをスキップし、その時点から継続すること、である、このような何か:
2011-07-19 13:24:52 (68.1 KB/s) - Connection closed at byte 65396. Retrying.
--2011-07-19 13:24:54-- (try: 3)
http://server06//files/filex.txt
Connecting to server|10.10.0.108|:80... failed: Unknown error.
Resolving server... 10.10.0.108
Connecting to server|10.10.0.108|:80... connected.
HTTP request sent, awaiting response... 206 Partial Content
Length: 166400 (163K), 101004 (99K) remaining [text/plain]
Saving to:
`./temp/server06/files/filex.txt'
[ skipping 50K ]
50K ,,,,,,,,,, ,,,....... .......... .......... .......... 61% 2.65M 0s
100K .......... .......... .......... .......... .......... 92% 1.62M 0s
150K .......... .. 100% 1.64M=0.06s
utime(./temp/server06/files/filex.txt):
Permission denied
2011-07-19 13:25:15 (1.72 MB/s) -
`./temp/server06/files/filex.txt'
saved [166400/166400]
私の問題は、私はwgetをダウンロードしたくないということですファイルは2つの部分に分かれています。私はwgetにもっと多くの時間を試してもらいたいですが、何らかの理由で失敗した場合は、最初からやり直したいと思います(ファイルをダウンロードしないという犠牲を払っても!)。
背景は、ファイルが1つでダウンロードされた場合にのみ対象となるフィルタドライバのコードをテストしていることです。そして、この動作のために私のテストは失敗します。
質問:この動作を抑制することは可能ですか?私。パラメータごとに設定した分だけWgetを試してみてください。試行ごとに完全なファイルまたはゼロバイトをダウンロードしていますか?
また別の回避策を探す必要がありますか?
まあ、私はcURLについて考えましたが、私はcurl.exeがどのように私のファイルをwgetと同じようにしているのか分かりませんでした。私は無作為にミラーを交替し、別々に保管したいと思います。 (これを反映するために投稿を編集します) –
cURLではなく、呼び出すことのできる関数を持つライブラリであるlibcurl(cURLはこのライブラリを使用します)。これを使うには小さなプログラムを書く必要がありますが、libcurlサイトに*あなたが使用するための*デモプログラムがたくさんあります。 –
さて、少しプログラミングを避けることはできないようです。ありがとう、ピート! –