Por que o wget não está baixando os arquivos recém-adicionados do servidor?

Por que o wget não está baixando os arquivos recém-adicionados do servidor?

Estou executando duas máquinas virtuais – digamos VM1 e VM2. Ambos estão executando o Ubuntu 16.04 e o VM2 possui o servidor web Apache2 instalado. Agora, no servidor VM2, copiei o código de um pequeno site.

PROBLEMA:

Na VM1, quero poder baixar o conteúdo do site usandowgetrepetidamente em um intervalo definido. Agora ele baixa todo o conteúdo do site inicialmente perfeitamente, mas quando adicionei um novo arquivo (um .jpgarquivo, à pasta do site que contém os arquivos de imagem anteriores) a uma pasta (no site da máquina VM2), e então executo o comando wget em a máquina VM1, o novo arquivo faznãofaça o download.

MEU COMANDO WGET:

wget --recursive --convert-links --no-check-certificate --no-cache --no-cookies http://192.168.1.44/

O QUE EU TENTEI:

Então eu pensei que era umcacheproblema. Mas eu já tinha --no-cachemeu comando wget, então pesquisei na internet e executei o seguinte comando no lado do servidor para limpar o cache do Apache2.Mas ainda sem sorte.

Responder1

Se você adicionou um arquivo de imagem JPEG, mas não atualizou nenhum arquivo HTML para incluir uma referência a ele (ou um link para uma página de índice dinâmico), o Wget não conseguirá encontrar o JPEG.

A sincronização de dois conjuntos de pastas entre máquinas normalmente seria feita usando ferramentas como rsync, robocopy etc. que não apresentam esse problema e que não copiam arquivos inalterados e, portanto, são muito mais eficientes.


Atualizar:

Para procurar alterações no conteúdo em servidores aos quais você não tem acesso administrativo, às vezes você pode usar a HTTP HEADsolicitação e examinar o Last-Modifiedcabeçalho, se 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 tem algumas opções para usar solicitações HTTP HEAD.

Para um site completamente estático sem Javascript, você pode usar uma abordagem simples usando Wget etc. Acredito que esses sites sejam raros.

Você sempre terá problemas com páginas geradas dinamicamente. Você teria que baixar e analisar o HTML do site para determinar os URLs que precisa verificar. Você também pode precisar executar Javascript.

Você só pode verificar alterações no conteúdo gerado, não nos arquivos de origem. Como outros observaram, o conteúdo gerado geralmente apresenta alterações que não são de interesse - como carimbos de data e hora, tempos de processamento, etc.

informação relacionada