是否有可能抑制wget尝试之间的“跳过”行为?

时间:2011-07-22 21:37:13

标签: windows wget

我正在使用wget通过HTTP下载一组文件,在一个简单的cmd.exe批处理中,每个URL使用一次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分两部分下载文件。我希望wget尝试更多次,但是如果任何尝试因任何原因失败,我希望它重新开始(即使以不下载文件为代价!)。

背景是我正在测试过滤器驱动程序中的代码,只有当文件以单件下载时才会被覆盖。我的测试由于这种行为而失败。

问题是:是否有可能抑制此行为?即make wget尝试尽可能多的参数配置,同时在每次尝试中下载完整文件或零字节?

或者我应该寻找另一种解决方法?

1 个答案:

答案 0 :(得分:1)

我相信你会对 the libcurl library更开心。每个URL只需一次调用,libcurl完成所有其余的工作。最重要的是,对包装有一流的支持。

使用libcurl时,遇到问题的特殊情况不会有问题。

HTH