
Estoy ejecutando dos máquinas virtuales, digamos VM1 y VM2. Ambos ejecutan Ubuntu 16.04 y VM2 tiene instalado el servidor web Apache2. Ahora, en el servidor VM2, copié el código de un pequeño sitio web.
PROBLEMA:
Desde VM1, quiero poder descargar el contenido del sitio web usandowget
una y otra vez en un intervalo establecido. Ahora descarga todo el contenido del sitio web inicialmente perfectamente, pero cuando agregué un nuevo archivo (un .jpg
archivo, a la carpeta del sitio web que contiene archivos de imagen anteriores) a una carpeta (en el sitio web en la máquina VM2), y luego ejecuto el comando wget en la máquina VM1, el nuevo archivo nonodescargarse.
MI COMANDO WGET:
wget --recursive --convert-links --no-check-certificate --no-cache --no-cookies http://192.168.1.44/
LO QUE INTENTÉ:
Entonces pensé que es unalmacenamiento en cachéproblema. Pero ya tenía --no-cache
en mi comando wget, así que busqué en Internet y ejecuté el siguiente comando en el lado del servidor para borrar el caché de Apache2.Pero todavía no hubo suerte.
Respuesta1
Si agregó un archivo de imagen JPEG pero no actualizó ningún archivo HTML para incluir una referencia al mismo (o un enlace a una página de índice dinámica), Wget no podrá encontrar el JPEG.
La sincronización de dos conjuntos de carpetas entre máquinas normalmente se haría utilizando herramientas como rsync, robocopy, etc. que no tienen este problema y que no copian archivos sin cambios y, por lo tanto, son mucho más eficientes.
Actualizar:
Para buscar cambios en el contenido de servidores a los que no tiene acceso administrativo, a veces puede utilizar la HTTP HEAD
solicitud y examinar el Last-Modified
encabezado, si está presente.
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 tiene algunas opciones para usar solicitudes HTTP HEAD.
Para un sitio web completamente estático sin Javascript, es posible que pueda utilizar un enfoque simple usando Wget, etc. Creo que estos sitios son raros.
Siempre tendrás problemas con las páginas generadas dinámicamente. Tendría que descargar y analizar HTML del sitio para determinar las URL que necesita verificar. Es posible que también necesites ejecutar Javascript.
Sólo puede comprobar si hay cambios en el contenido generado, no en los archivos fuente. Como han señalado otros, el contenido generado a menudo tiene cambios que no son de interés, como marcas de tiempo, tiempos de procesamiento, etc.