我正在使用以下命令镜像一个网站:
wget -m -nc -p -E -k -np -e robots=off https://www.somesite.com/ & disown
一切都很顺利,直到我发现它卡在了
Reusing existing connection to www.somesite.com:443.
然后我关闭了那个tty。
我该怎么做才能让它继续下去?
以下是 wget 输出的一部分:
www.somesite.com/.../sport.html [ <=> ] 833.32K 1.53MB/s in 0.5s
Last-modified header missing -- time-stamps turned off.
2018-02-10 16:34:23 (1.53 MB/s) - ‘www.somesite.com/.../sport.html’ saved [853319]
--2018-02-10 16:34:23-- http://www.somesite.com/.../social
Reusing existing connection to www.somesite.com:80.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/html]
Saving to: ‘www.somesite.com/.../social.html’
www.somesite.com/.../social.html [ <=> ] 141.35K 816KB/s in 0.2s
Last-modified header missing -- time-stamps turned off.
2018-02-10 16:34:24 (816 KB/s) - ‘www.somesite.com/.../social.html’ saved [144747]
--2018-02-10 16:34:24-- http://www.somesite.com/.../parliament
Reusing existing connection to www.somesite.com:80.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/html]
Saving to: ‘www.somesite.com/.../parliament.html’
我使用的命令是:
wget -m -c -p -E -k -np -e robots=off https://www.somesite.com
有没有办法指示 wget 不要下载之前已经下载过的相同 url?
答案1
只需再次运行该命令即可。wget
足够聪明,可以继续下载。但是,您必须指定正确的选项。
例如,-nc
如果您想重新下载已更改的文件,请删除该选项(另请参阅如果 wget 中存在文件,则跳过下载?):
-nc --no-clobber
(…) 当指定 -nc 时,(…) Wget 将拒绝下载文件的较新副本。因此,在这种模式下,“no-clobber”实际上是一个误称——它不是阻止破坏(因为数字后缀已经阻止破坏),而是阻止了多个版本保存。
当使用 -r 或 -p 运行 Wget 时,但不使用 -N、-nd 或 -nc,重新下载文件将导致新副本直接覆盖旧副本。添加 -nc 将阻止此行为,而是保留原始版本并忽略服务器上任何较新的副本。
如果在下载大文件时下载中断,您可能需要添加以下-c
选项:
-c --continue
继续获取部分下载的文件。当你想完成由 Wget 的上一个实例或其他程序启动的下载时,这很有用。
引文来源:man wget
您还应该考虑使用screen
或tmux
代替来disown
检查后台进程的状态和输出。