我的互联网连接非常不稳定,有时必须下载大至 200 MB 的文件。
问题是速度经常下降并--, -K/s保持不变,而该过程仍然有效。我想只是向进程发送一些 KILL 信号,但是当我在 wget 手册中阅读有关信号的内容时,它无济于事。
如何强制wget重新初始化自身并在连接断开后从停止的地方继续下载并再次恢复?
我想离开wget跑步,当我回来时,我想看到它下载,而不是等待速度--,-K/s。
Bel*_*ell 68
为了避免这种--, -K/s情况,您可以使用--read-timeout=seconds. 这将在几秒钟后超时连接。
如果您需要超出此范围,您可以使用此设置
wget --retry-connrefused --waitretry=1 --read-timeout=20 --timeout=15 -t 0
Run Code Online (Sandbox Code Playgroud)
这将重试被拒绝的连接和类似的致命错误 ( --retry-connrefused),在下一次重试之前将等待 1 秒 ( --waitretry),如果没有收到数据,它将等待最多 20 秒,然后再试一次 ( --read-timeout),它将等待最多 15 秒在初始连接超时 ( --timeout) 之前,最终它将重试无限次 ( -t 0)。
您可能还想将其置于while循环中以避免本地网络故障等。在这种情况下,您还需要添加--continue以便从您停止的地方继续下载。以下在 Bash 中运行良好
while [ 1 ]; do
wget --retry-connrefused --waitretry=1 --read-timeout=20 --timeout=15 -t 0 --continue
if [ $? = 0 ]; then break; fi; # check return value, break if successful (0)
sleep 1s;
done;
Run Code Online (Sandbox Code Playgroud)
作为额外提示,您还可以--no-dns-cache在主机通过 DNS 在多个服务器之间平衡您的请求时使用。
免责声明:我不建议使用它,因为它会在连接不稳定的情况下向主机发送垃圾邮件,并且不对其进行监控是不明智的。但是,如果您确实需要下载某些内容并且您的连接无法正常工作,这就是您想要的。
小智 28
--tries=number
此选项将重试次数设置为 number。为无限重试指定 0 或 'inf'。
wget --tries=70 http://example.com/myfile.zip 应该这样做。
默认是重试 20 次,除了“连接被拒绝”或“未找到”(404)等致命错误,它们不会重试。
这有帮助吗?在askubuntu.com上,我发现了一个与您所问的问题非常相似的问题。这是它的链接:https://askubuntu.com/questions/72663/how-to-make-wget-retry-download-if-speed-goes-below-certain-threshold
| 归档时间: |
|
| 查看次数: |
69748 次 |
| 最近记录: |