无论如何如何使wget使用现有的本地文件

时间:2018-10-31 09:47:31

标签: wget mirror

我正在使用wget镜像选项来镜像整个网站

wget -mk https://test.com

当我停止wget并随后使用同一命令将其恢复时,它将继续为所有已下载的文件发出HEAD命令。这是为了检查文件自上次下载以来是否已更改,如果服务器上的文件较新,则再次检索它们。我想关闭此功能,这意味着: 如果本地文件已经存在,则wget应该始终使用本地文件,甚至不要发出HEAD命令来验证修改时间或文件大小。 这可能吗?

1 个答案:

答案 0 :(得分:1)

不,您不能。截至撰写本文时,Wget中没有任何开关可让您跳过测试本地文件。这有一个很好的理由。如果Wget不再再次验证每个文件,则将发生以下两个问题中的一个或两个:

  1. 上一次下载的文件现在不完整且已损坏。但是您没有任何迹象表明它是哪个文件。这也意味着Wget将无法解析和跟踪此文件中的任何链接。因此,您最终可能会得到部分镜像,而无话可说。

  2. 在最后一次尝试和当前尝试之间,某些文件已在远程端更改。无需再次验证修改时间,您得到的是一个不一致的镜像。由于镜子的一半是旧的,另一半是新的,所以这是新的,由此可能会导致各种有趣的问题。

无论如何,HEAD请求非常快,因为它只需要很少的带宽。因此,我不明白为什么这将成为任何管道的瓶颈。