背景:
我在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
flag - 有没有办法在wget中修复这个明显的bug,以便使用 --wait
flag导致下载尝试之间的预期固定等待时间?
--wait
仅用于下载之间的等待 不同 文件,它与重试失败的下载完全无关。