使用wget镜像网页中途卡住,如何续传并避免重复下载?
如何恢复wget网站镜像的续传并避免重复下载?
嘿,这个问题我碰到过好多次了,刚好可以给你详细说说怎么解决~
一、恢复断点续传
当你中断了wget的镜像任务后,只需要在原来的命令基础上加上--continue(或者短选项-c)参数,就能让wget自动识别本地已下载的文件,从断点处继续传输。
举个例子,假设你原来的镜像命令是:
wget --mirror --convert-links --adjust-extension --page-requisites --no-parent http://your-target-site.com
那恢复续传的命令就是:
wget --continue --mirror --convert-links --adjust-extension --page-requisites --no-parent http://your-target-site.com
这里的--continue参数会让wget检查每个本地文件的状态:如果文件是不完整的(比如中途中断导致的),就从上次中断的位置继续下载;如果文件已经完整,就直接跳过。
二、避免重复下载已获取的URL
wget本身有几个参数可以帮你实现这个需求,不同参数适用不同场景:
默认镜像模式已自带增量下载
你用的--mirror参数其实已经包含了--timestamping(短选项-N),这个参数会让wget对比本地文件和服务器上文件的修改时间与大小:只有当服务器上的文件更新过,或者本地没有该文件时,才会下载。这是最常用的增量镜像方式,既能保证内容最新,又不会重复下载未更新的文件。强制跳过所有本地已存在的文件
如果你不管服务器上的文件是否更新,只要本地已经有了就绝对不下载(哪怕服务器上的文件已经更新),可以加上--no-clobber(短选项-nc)参数。不过要注意:如果本地有不完整的文件,-nc默认不会续传,所以建议和--continue一起使用,这样既可以续传未完成的文件,又能跳过已完整的文件:wget --continue --no-clobber --mirror --convert-links --adjust-extension --page-requisites --no-parent http://your-target-site.com
小提醒
一定要确保你在原来的镜像工作目录下执行恢复命令,不然wget找不到已有的文件,就会从头开始下载了哦~
内容的提问来源于stack exchange,提问作者yukashima huksay




