如果速度低于特定阈值,如何使wget重试下载?


13

我正在尝试使用wget下载2GB的大文件,但是几分钟后,它似乎一直停滞不前。

我对其进行^ C处理,然后再次使用[with --continueoption]进行获取,然后它再次开始下载。

停止下载时,有没有一种方法可以自动重试该下载?谢谢

Answers:


20

您可以使用该--tries选项。

   --tries=number
       Set number of retries to number.  Specify 0 or inf for infinite
       retrying.  The default is to retry 20 times, with the exception of
       fatal errors like "connection refused" or "not found" (404), which
       are not retried.

所以--tries=0应该做到这一点。

那,再加上--read-timeout=seconds。该秒数是指空闲时间:如果在下载的任何时刻,没有收到超过指定秒数的数据,则读取失败,并重新开始下载。

所以最后一个命令:

wget -c --tries=0 --read-timeout=20 [URL]


1
问题是wget不会退出。它只是以“ 0KB / s”的速度保持“下载”状态。::
Matt

8
好。可能您可以--read-timeout=seconds改用。此超时的“时间”是指空闲时间:如果在下载的任何时间点,如果没有收到超过指定秒数的数据,则读取失败,然后重新开始下载。此选项不会直接影响整个下载的持续时间。当然,远程服务器可能会选择终止此选项所需的连接。默认读取超时为900秒。
Pablo Zubieta

是! 这就对了!我一定很早以前就读过wget手册[大部分/全部],因此我回过头去却找不到它。
马特

这不应该也包括--continue吗?
sfyn 2014年

@sfyn:是的,我添加-c了答案,所以如果出现任何问题,您可以从上次中断的地方继续。谢谢。
Pablo Zubieta

0

Wget尝试在失败15分钟后继续下载。如果您将其放置一整夜,它应该可以正常工作。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.