wget 下载速度的下限

wget 下载速度的下限

我正在尝试使用下载一些文件wget,但一小时后我的下载速度下降。如果我取消下载并重新启动,下载速度将提高一个小时。

是否可以在 中设置下载速度的下限wget,以便当速度低于该阈值时,wget重新启动或重新启动?

答案1

相反,你应该解决根本问题。因此,请分析您的连接速度下降的原因并排除原因。

如果它是一些省电功能,您几乎肯定可以将其关闭或以不影响网络的方式配置它。

答案2

一段时间后,您下载的网站或您的 ISP 可能会限制您的带宽。它可能有助于限制传输速率--limit-rate

有几个选项可以告诉 wget 退出。通过--tries( -t)来控制重试次数。如果您稍微调整一下重试的速度,也许会得到更好的--wait结果--wait-random。如果服务器支持,Wget 将自动从停止处恢复。如果传输速率被限制到一个非常低的数字,然后--read-timeout使用一个非常小的参数,例如0.1十分之一秒,如果速率降至每 0.1 秒一个数据包以下,将重新启动连接。请注意,如果由于网络故障而在这段时间内没有收到数据包,连接也将重新启动。

如果您事先知道在受到限制之前大约还有多少时间,请编写一个 shell 片段来终止 wget 进程并再次启动它,并提供-c恢复下载的选项。警告,未经测试;在 shell 中使用后台子进程有点奇怪,所以我建议使用 Perl 或 Python 来完成严肃的工作。

while wget -q -c http://example.com/wibble & wget_pid=$!
      { sleep 300; kill $wget_pid; } & kill_pid=$!
      wait $wget_pid
      kill $kill_pid
      wait
do sleep 10; done

答案3

我的 wget 版本支持在无下载超时后重试,read-timeout如下所示...

$ wget -c --read-timeout=5 http://thefile.com/getme.txt

36% [+++++++++++++++++++++++++++++++++++++++++++======>                                                                                        ] 280,061,984 --.-K/s   in 6m 16s  

2012-05-09 16:04:23 (105 KB/s) - Read error at byte 280061984/761323675 (Operation timed out). Retrying.

似乎没有办法设置下限,但它对我的持续下载有很大帮助 - 希望其他人搜索这个问题。

相关内容