我正在运行两个虚拟机 - 即 VM1 和 VM2。两者都运行 Ubuntu 16.04,并且 VM2 安装了 apache2 Web 服务器。现在在 VM2 服务器中,我复制了一个小型网站的代码。
问题:
从 VM1,我希望能够使用以下方式下载网站内容wget
按照设定的时间间隔反复执行。现在它确实可以完美地下载所有网站内容,但是当我将新文件(一个.jpg
文件,包含先前图像文件的网站文件夹)添加到文件夹(在 VM2 机器上的网站中)时,然后在 VM1 机器上运行 wget 命令,新文件不是得到下载。
我的 WGET 命令:
wget --recursive --convert-links --no-check-certificate --no-cache --no-cookies http://192.168.1.44/
我尝试过:
所以我认为这是一个缓存问题。但我的 wget 命令中已经有了--no-cache
,所以我搜索了互联网并在服务器端执行了以下命令来清除 apache2 缓存。但仍然没有运气。
答案1
如果您添加了 JPEG 图像文件但没有更新任何 HTML 文件以包含对它的引用(或动态索引页的链接),那么 Wget 将无法找到 JPEG。
在机器之间同步两组文件夹通常使用 rsync、robocopy 等工具来完成,这些工具不会出现这个问题,也不会复制未更改的文件,因此效率更高。
更新:
要查找您没有管理权限的服务器上的内容更改,您有时可以使用请求HTTP HEAD
并检查Last-Modified
标头(如果存在)
C:\> curl --head https://www.gnu.org/graphics/heckert_gnu.transp.small.png
HTTP/1.1 200 OK
Date: Thu, 28 Nov 2019 23:15:33 GMT
Server: Apache/2.4.7
Strict-Transport-Security: max-age=63072000
Access-Control-Allow-Origin: (null)
Last-Modified: Sat, 19 Nov 2016 18:01:39 GMT
ETag: "1dfd-541ab36d9a6c0"
Accept-Ranges: bytes
Content-Length: 7677
Cache-Control: max-age=2592000
Expires: Sat, 28 Dec 2019 23:15:33 GMT
Content-Type: image/png
Content-Language: non-html
Wget 有一些使用 HTTP HEAD 请求的选项。
对于完全静态的、没有 Javascript 的网站,您可能可以使用 Wget 等简单的方法。我相信这样的网站很少见。
动态生成的页面总是会出问题。您必须从网站下载并解析 HTML 来确定需要检查的 URL。您可能还需要执行 Javascript。
您只能检查生成内容中的更改,而不能检查源文件中的更改。正如其他人所指出的,生成内容通常会发生不感兴趣的更改 - 例如时间戳、处理时间等。