我正在运行两个虚拟机——比如 VM1 和 VM2。两者都运行 Ubuntu 16.04,VM2 安装了 apache2 Web 服务器。现在在 VM2 服务器中,我已经复制了一个小型网站的代码。
问题:
从VM1,我希望能够wget
以设定的时间间隔一次又一次地下载网站的内容。现在它最初完美地下载了所有网站内容,但是当我将一个新文件(一个.jpg
文件,到包含以前图像文件的网站文件夹)添加到一个文件夹(在 VM2 机器上的网站中),然后我运行 wget 命令VM1 机器上,新文件不会被下载。
我的 WGET 命令:
wget --recursive --convert-links --no-check-certificate --no-cache --no-cookies http://192.168.1.44/
我尝试了什么:
所以我认为这是一个缓存问题。但是我已经--no-cache
在我的 wget 命令中,所以我搜索了互联网并在服务器端执行了以下命令以清除 apache2 缓存。但仍然没有运气。
如果您添加了 JPEG 图像文件但没有更新任何 HTML 文件以包含对其的引用(或指向动态索引页面的链接),则 Wget 将无法找到 JPEG。
在机器之间同步两组文件夹通常可以使用 rsync、robocopy 等工具来完成,这些工具没有这个问题,也不会复制未更改的文件,因此效率更高。
更新:
要查找对您没有管理权限的服务器上的内容所做的更改,有时可以使用
HTTP HEAD
请求并检查Last-Modified
标头(如果存在)Wget 有一些使用 HTTP HEAD 请求的选项。
对于没有 Javascript 的完全静态网站,您可以使用 Wget 等简单的方法。我相信这样的网站很少见。
动态生成的页面总会有问题。您必须从该站点下载并解析 HTML 以确定您需要检查的 URL。您可能还需要执行 Javascript。
您只能检查生成内容中的更改,而不能检查源文件中的更改。正如其他人所指出的那样,生成的内容通常具有不感兴趣的更改 - 例如时间戳、处理时间等。