Vor einem Monat habe ich " wget --mirror " verwendet, um einen Spiegel unserer öffentlichen Website für die vorübergehende Verwendung während eines bevorstehenden geplanten Wartungsfensters zu erstellen. Auf unserer primären Website werden HTML, PHP und MySQL ausgeführt, aber der Spiegel muss nur HTML sein, es werden keine dynamischen Inhalte, PHP oder Datenbanken benötigt.
Mit dem folgenden Befehl wird ein einfacher Online-Spiegel unserer Website erstellt:
wget --mirror http://www.example.org/
Beachten Sie, dass die Wget Handbuch sagt --mirror
„ist zur Zeit entspricht -r -N -l inf --no-remove-listing
“ (Die menschenlesbare entspricht `--recursive --timestamping --level = inf --no-remove-Auflistung.
Jetzt ist es ein Monat später und ein Großteil des Website-Inhalts hat sich geändert. Ich möchte, dass wget alle Seiten überprüft und alle Seiten herunterlädt, die sich geändert haben. Dies funktioniert jedoch nicht.
Meine Frage:
Was muss ich tun, um den Spiegel der Website zu aktualisieren, ohne das Verzeichnis zu löschen und den Spiegel erneut auszuführen?
Die Datei der obersten Ebene unter http://www.example.org/index.html hat sich nicht geändert, aber es gibt viele andere Dateien, die sich geändert haben.
Ich dachte, ich müsste nur erneut ausführen wget --mirror
, da --mirror
die Flags --recursive
"Rekursiven Download angeben" und --timestamping
"Dateien nur dann erneut abrufen, wenn sie neuer als lokal sind". Ich dachte, dies würde alle Seiten überprüfen und nur Dateien abrufen, die neuer sind als meine lokalen Kopien. Liege ich falsch?
Wget rekursiert die Site jedoch nicht beim zweiten Versuch. 'wget --mirror' überprüft http://www.example.org/index.html , stellt fest, dass sich diese Seite nicht geändert hat, und stoppt dann.
--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)
Antworten:
Die folgende Problemumgehung scheint vorerst zu funktionieren. Es löscht zwangsweise /index.html, wodurch wget gezwungen wird, alle untergeordneten Links erneut zu überprüfen. Sollte wget jedoch nicht alle untergeordneten Links automatisch überprüfen?
quelle
So mache ich das auf einem Windows-basierten Computer http://www.devarticles.com/c/a/Web-Services/Website-Mirroring-With-wget/1/
Sie können den Pfad zu Ihrer Verzeichnisstruktur ändern, versuchen, alle Inhalte über FTP herunterzuladen, und prüfen, ob dies hilfreich ist.
Ich benutze auch ein anderes Dienstprogramm unter Windows "AllwaySync" funktioniert hervorragend.
quelle
Ich benutze den Schalter --mirror, um genau das zu tun, wonach Sie fragen, was tatsächlich dazu führt, dass wget nur neuere Dateien rekursiv herunterlädt. Insbesondere lautet meine Befehlszeile (bereinigt):
quelle
Sie können versuchen, Folgendes zu verwenden:
quelle
-m
oder impliziert--mirror
. Das Handbuch sagt, ist derzeit gleichbedeutend mit-r -N -l inf --no-remove-listing
.