
Ich betreibe zwei virtuelle Maschinen – sagen wir VM1 und VM2. Beide laufen unter Ubuntu 16.04 und auf VM2 ist der Apache2-Webserver installiert. Jetzt habe ich auf dem VM2-Server den Code für eine kleine Website kopiert.
PROBLEM:
Von VM1 aus möchte ich den Inhalt der Website herunterladen können mitwget
immer wieder in einem festgelegten Intervall. Jetzt lädt es zunächst alle Website-Inhalte perfekt herunter, aber wenn ich eine neue Datei (eine .jpg
Datei zum Ordner der Website, die vorherige Bilddateien enthält) zu einem Ordner (in der Website auf der VM2-Maschine) hinzufüge und dann den Befehl wget auf der VM1-Maschine ausführe, wird die neue Datei nichtnichtheruntergeladen werden.
MEIN WGET-BEFEHL:
wget --recursive --convert-links --no-check-certificate --no-cache --no-cookies http://192.168.1.44/
WAS ICH VERSUCHT HABE:
Also dachte ich, es ist einZwischenspeicherungProblem. Aber ich hatte es bereits --no-cache
in meinem Wget-Befehl, also suchte ich im Internet und führte den folgenden Befehl auf der Serverseite aus, um den Apache2-Cache zu leeren.Aber immer noch kein Glück.
Antwort1
Wenn Sie eine JPEG-Bilddatei hinzugefügt haben, aber keine HTML-Datei aktualisiert haben, um einen Verweis darauf (oder einen Link zu einer dynamischen Indexseite) einzufügen, kann Wget das JPEG nicht finden.
Das Synchronisieren zweier Ordnersätze zwischen Computern erfolgt normalerweise mit Tools wie rsync, robocopy usw., bei denen dieses Problem nicht auftritt und die keine unveränderten Dateien kopieren und daher viel effizienter sind.
Aktualisieren:
Um nach Änderungen am Inhalt auf Servern zu suchen, auf die Sie keinen Administratorzugriff haben, können Sie manchmal die HTTP HEAD
Anfrage verwenden und den Last-Modified
Header untersuchen, falls vorhanden
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 bietet einige Optionen zur Verwendung von HTTP-HEAD-Anfragen.
Für eine vollständig statische Website ohne JavaScript können Sie möglicherweise einen einfachen Ansatz mit Wget usw. verwenden. Ich glaube, solche Websites sind selten.
Mit dynamisch generierten Seiten werden Sie immer Probleme haben. Sie müssten HTML von der Site herunterladen und analysieren, um die zu überprüfenden URLs zu ermitteln. Möglicherweise müssen Sie auch Javascript ausführen.
Sie können nur im generierten Inhalt nach Änderungen suchen, nicht in den Quelldateien. Wie andere bereits bemerkt haben, weisen generierte Inhalte häufig Änderungen auf, die nicht von Interesse sind – wie etwa Zeitstempel, Verarbeitungszeiten usw.