wget 的 --quota参数

本文从WordPress迁移而来, 查看全部WordPress迁移文章

这个参数是写限制下载容量,这容易让人误以为,可以限制一个文件的下载容量,其实不是,它限制的是下载流量

看看官方文档怎么说

1
2
3
4
5
6
7
8
9
10
http://www.gnu.org/software/wget/manual/html_node/Download-Options.html
‘-Q quota’
‘–quota=quota’
Specify download quota for automatic retrievals. The value can be specified in bytes (default), kilobytes (with ‘k’ suffix), or megabytes (with ‘m’ suffix).

Note that quota will never affect downloading a single file. So if you specify ‘wget -Q10k ftp://wuarchive.wustl.edu/ls-lR.gz’, all of the ls-lR.gz will be downloaded.
The same goes even when several URLs are specified on the command-line. However, quota is respected when retrieving either recursively, or from an input file. Thus you
may safely type ‘wget -Q2m -i sites’—download will be aborted when the quota is exceeded.

Setting quota to 0 or to ‘inf’ unlimits the download quota.

首先你要使这个参数生效,是不可以直接在命令中输入URL的,一定要把URL保存在文件中,然后 —i 文件,就可以生效了;即使文件里面只有一行URL,也是可以生效的

但你很开心地以为,wget可以帮你控制下载一个文件的大小的时,你会发现,其实根本没有,它限制的是下载流量大小;wget会把一个文件完整地下载下来,然后把容量累加起来,当它下载的总容量超过了你提供了限制值,则停止了,不在下载文件剩下的那些URL

比如文件有

假设3个站的首页HTML文本大小为 70k,80k,100k,你提供的限制值为100k,wget会怎么做?

  • wget下载了baidu.com,消耗了70k容量,还没超过限制值100k
  • wget下载了qq.com, 消耗了80k容量,累加150k容量,超过了限制值100k,然后wget退出了,不再下载sina.com
  • baidu.com和qq.com是完整下回来的,没有折断