等待Wget中的功能无法按预期工作

时间:2017-08-17 21:00:17

标签: linux wget rhel

背景
我在RedHat Linux(版本7.3(Maipo))上使用wget(版本1.14-15.el7),在Bash(版本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.

要清楚,我使用--wait标志,而不是--waitretry标志。

流程:

首先,我导出/设置了错误的http_proxy和https_proxy,以确保任何下载尝试都会超时。

我运行以下命令: wget --tries=5 --wait=30 <url> -O <output_filename>

此时,--wait功能无法按预期工作。具体来说,它不会在每次下载尝试后等待30秒。

相反:
1)第一次尝试后,等待1秒 2)第二次尝试后,等待2秒 3)第3次尝试后,等待3秒 等等...

换句话说,尽管使用--wait标志(这应该导致下载尝试之间的固定等待时间),wget似乎正在执行--waitretry标志中描述的“线性退避”部分。

问题:
我想要--wait标志的功能,而不是--waitretry标志。

不幸的是,--wait标志似乎就像--waitretry标志一样 - 是否有办法解决wget中这个明显的错误,以便使用--wait标志结果在下载尝试之间的预期固定等待时间?

1 个答案:

答案 0 :(得分:0)

从您提供的--help对话框中可以看出,我相信您应该能够在命令中使用--waitretryget --tries=5 --waitretry=30 <url> -O <output_filename>之类的内容应该有效!