如何刷新使用“wget --mirror”创建的在线网站镜像?

如何刷新使用“wget --mirror”创建的在线网站镜像?

一个月前,我用“wget --镜像“创建我们公共网站的镜像,以便在即将到来的预定维护时段内临时使用。我们的主要网站运行 HTML、PHP 和 MySQL,但镜像只需要是 HTML,不需要动态内容、PHP 或数据库。

以下命令将创建我们网站的简单在线镜像:

wget --mirror http://www.example.org/

请注意Wget 手册--mirror“目前等同于-r -N -l inf --no-remove-listing”(人类可读的等同于`--recursive --timestamping --level=inf --no-remove-listing。

现在一个月过去了,网站内容已经发生了很大变化。我想让 wget 检查所有页面,并下载任何已更改的页面。但是,这不起作用。

我的问题:

除了删除目录并重新运行镜像之外,我还需要做什么来刷新网站镜像?

顶层文件位于http://www.example.org/index.html没有改变,但还有许多其他文件已改变。

我以为我需要做的就是重新运行wget --mirror,因为--mirror暗示了标志--recursive“指定递归下载”和--timestamping“除非比本地文件更新,否则不要重新检索文件”。我认为这会检查所有页面,并且只检索比我的本地副本更新的文件。我错了吗?

但是,wget 不会在第二次尝试时递归该站点。'wget --mirror' 将检查http://www.example.org/index.html,注意到这个页面没有变化,然后停止。

--2010-06-29 10:14:07--  http://www.example.org/
Resolving www.example.org (www.example.org)... 10.10.6.100
Connecting to www.example.org (www.example.org)|10.10.6.100|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/html]
Server file no newer than local file "www.example.org/index.html" -- not retrieving.

Loading robots.txt; please ignore errors.
--2010-06-29 10:14:08--  http://www.example.org/robots.txt
Connecting to www.example.org (www.example.org)|10.10.6.100|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 136 [text/plain]
Saving to: “www.example.org/robots.txt”

     0K                                                       100% 6.48M=0s
2010-06-29 10:14:08 (6.48 MB/s) - "www.example.org/robots.txt" saved [136/136]

--2010-06-29 10:14:08--  http://www.example.org/news/gallery/image-01.gif
Reusing existing connection to www.example.org:80.
HTTP request sent, awaiting response... 200 OK
Length: 40741 (40K) [image/gif]
Server file no newer than local file "www.example.org/news/gallery/image-01.gif" -- not retrieving.

FINISHED --2010-06-29 10:14:08--
Downloaded: 1 files, 136 in 0s (6.48 MB/s)

答案1

以下解决方法目前似乎有效。它强制删除 /index.html ,从而迫使 wget 再次检查所有子链接。但是,wget 不应该自动检查所有子链接吗?

rm www.example.org/index.html && wget --mirror http://www.example.org/

答案2

wget –mirror –w 3 –p –P c:\wget_files\example2 ftp://username:[email protected]

这是我在基于 Windows 的机器上执行的操作 http://www.devarticles.com/c/a/Web-Services/Website-Mirroring-With-wget/1/

您可以更改目录结构的路径,尝试通过 FTP 下载所有内容,看看是否有帮助。

我也在 Windows 上使用另一个实用程序“AllwaySync”,效果非常好。

答案3

我使用 --mirror 开关来执行您所要求的操作,这确实会导致 wget 仅以递归方式下载较新的文件。具体来说,我的命令行(已清理)是:

/usr/bin/wget -v --mirror ftp://user:password@site/ -o /var/log/webmirror -P /var/WebSites

答案4

您可以尝试使用:

wget -r -l inf -N http://www.example.org/

相关内容