其实你不懂wget的心-05
上篇文章,给了大家不少误会,对于明白原理的朋友,不说自明;但对于不太精通Linux系统原理的朋友,上一篇的表述方法刚刚好。
今天我们继续了解wget的心,看看还有哪些体贴的功能,我们平时没有接触到的。
1 -t选项
即-tries=number,用于设置wget下载时重试的次数,当设置为0(数字零)或inf时表示无限次重试。默认的重试次数是20次。
不过wget也不是在什么情况下都会傻傻的重试的,例如在发生“connection refused”或“not found”时,wget会立即退出,不会进行重试。
2 -o选项
即-output-file=logfile,wget运行过程中输出到标准输出的内容都会被写到所设置的logfile文件中。
3 -O选项
即-output-document-file,表示wget下载的所有文件的内容会被依次追加写到所设置的file文件中,而不会创建原本的文件。在下载单独文件时使用-O选项,可以避免wget下载同名文件时默认写到“.1”后缀文件中的问题。
4 -N选项
即-timestamping,表示开启时间戳机制,wget会下载远程时间戳更新的文件。
5 -nc选项
即-no-clobber选项。
在同一个目录中,如果一个文件被多次下载,那么wget的处理方式会取决于几个重要选项,这其中就包括了-nc选项。
当多次下载同一个文件时,本次文件会被覆盖,或者被重写,或者被保护,这都是有可能的。
当使用wget多次下载同一个文件,且不使用-N,-nc或-r时,那么wget会默认在第二次下载时自动在文件名后加上“.1”后缀,第三次下载时加上“.2”后缀,以此类推。
但当我们使用了-nc选项时,wget不会使用“.1/.2”的策略,而是拒绝下载同一文件(即使文件内容是更新的了)。这个功能用于有的网页被同时指向了很多遍,那么使用-nc可以避免多次下载。
当使用wget且使用-r选项,但不使用-N选项或-nc选项时,重新下载同名文件时,当远程文件的修改时间是更新的了,那么wget会选择覆盖当前目录已有的老文件,此时使用-nc可以禁止wget这样做。(但当远程文件的修改时间并不新,那么wget就会拒绝下载。)
当使用wget且使用-N选项时,是否下载同名文件,完全取决于远程文件和本地文件的时间戳以及文件大小。-nc选项是不允许和-N选项同时设置的。如果你同时使用了-N和-nc选项,会得到这样的错误提示“Can’t timestamp and not clobber old files at the same time.”
6 -c选项
即-continue选项,这就是大名鼎鼎的“断点续传”。无论你之前使用哪个下载工具下载了一半的文件,都可以用wget来继续下载此文件。比如:
wget -c ftp://sunsite.doc.ic.ac.uk/ls-lR.Z
当前目录已有一个ls-lR.Z文件存在,wget将假定这是一个下载了一半的文件,然后提取本地文件的文件大小,并根据此值请求从远程文件的相应文件大小处开始继续下载。
你会发现,其实wget的此断点续传策略是有隐患的,因为如果远程文件的开头部分被进行了修改,wget在进行断点续传时是意识不到这一点的,它只会傻傻的从已传文件大小之后的部分继续下载。所以使用-c选项断点续传之后,务必进行md5校验。
7 -limit-rate=amount选项
此选项适用于限速的,将速度限制在amount bytes/second, 当然也可以用单位k/m来表示,例如-limit-rate=20k将会限制速度在20KB/s。
请注意,wget实现限速的原理是在一次网络读取动作之后sleep一个特定时间段,以让平均的网络读速度降到限制值,这个策略最终会使TCP传输速度降到限制值左右。所以在传输超小文件时,可能无法达到限速的作用。
8 -w选项
即-wait=seconds选项,用于设置wget每两个请求之间间隔的秒数。这个选项很有用处,可以降低远程服务器的负载。你除了可以直接设置秒数,还可以加上m表示分钟、h表示小时、d表示天。
9 -waitretry=seconds选项
用于设置请求重试秒数。wget采用的是线性递增等待的方式,如果你设置的是10秒,那么第一次请求失败后,会等待1秒;第二次请求失败会等待2秒;直到最后达到10秒等待时间为止。所以当到达最后一次时,时间已经过了1+2+…+10=55秒。
建议继续学习:
- wget 的使用 (阅读:4453)
- 其实你不懂wget的心-01 (阅读:3557)
- 其实你不懂wget的心-04 (阅读:3349)
- 其实你不懂wget的心-02 (阅读:2818)
- 其实你不懂wget的心-03 (阅读:2659)
- wget 自动发送用户名密码 (阅读:2551)
- wget中文使用手册 (阅读:2238)
- Linux下同时wget多个文件 (阅读:2304)
扫一扫订阅我的微信号:IT技术博客大学习
- 作者:rocrocket 来源: linux大棚-roclinux.cn
- 标签: wget
- 发布时间:2011-06-02 13:44:52
- [55] IOS安全–浅谈关于IOS加固的几种方法
- [54] android 开发入门
- [54] 图书馆的世界纪录
- [54] 如何拿下简短的域名
- [52] Oracle MTS模式下 进程地址与会话信
- [52] Go Reflect 性能
- [49] 【社会化设计】自我(self)部分――欢迎区
- [48] 读书笔记-壹百度:百度十年千倍的29条法则
- [41] 程序员技术练级攻略
- [35] 视觉调整-设计师 vs. 逻辑