Como atualizar um espelho de site online criado com 'wget --mirror'?

7

Um mês atrás, eu usei " wget --mirror "para criar um espelho do nosso site público para uso temporário durante uma próxima janela de manutenção programada. Nosso site principal é executado em HTML, PHP e amp; MySQL, mas o mirror precisa apenas de HTML, nenhum conteúdo dinâmico, PHP ou banco de dados necessários.

O seguinte comando irá criar um simples espelho online do nosso site:

wget --mirror http://www.example.org/

Observe que o manual do Wget diz que --mirror "é atualmente equivalente a -r -N -l inf --no-remove-listing "(O equivalente legível a humanos é '--recursivo --timestamping --level = inf --no-remove-listing.

Agora, um mês depois, e muito do conteúdo do site mudou. Quero que o wget verifique todas as páginas e faça o download de todas as páginas que foram alteradas. No entanto, isso não está funcionando.

Minha pergunta:

O que preciso fazer para atualizar o espelho do site, sem excluir o diretório e executar novamente o espelho?

O arquivo de nível superior no link não foi alterado, mas há muitos outros arquivos que têm mudou.

Pensei que tudo o que eu precisava fazer era executar novamente o wget --mirror , porque --mirror implica os sinalizadores --recursive "especificar o download recursivo" e --timestamping "Não recuperar arquivos novamente, a menos que seja mais recente que local " Eu pensei que isso iria verificar todas as páginas e só recuperar arquivos que são mais recentes que as minhas cópias locais. Estou errado?

No entanto, o wget não recorre ao site na segunda tentativa. 'wget --mirror' verificará o link , observe que essa página não foi alterada e, em seguida, pare.

--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)
    
por Stefan Lasiewski 29.06.2010 / 02:15

4 respostas

1

A seguinte solução parece funcionar por enquanto. Ele exclui obrigatoriamente /index.html, o que força o wget a verificar todos os links filhos novamente. No entanto, não deve verificar todos os links filho automaticamente?

rm www.example.org/index.html && wget --mirror http://www.example.org/
    
por 08.07.2010 / 21:48
0
wget –mirror –w 3 –p –P c:\wget_files\example2 ftp://username:[email protected]

É assim que faço em uma máquina baseada em Windows link

Você pode alterar o caminho para sua estrutura de diretórios, tentar baixar todo o conteúdo via FTP e ver se isso ajuda.

Eu também uso outro utilitário no Windows "AllwaySync" funciona soberbamente.

    
por 13.07.2010 / 10:40
-1

Eu uso a opção --mirror para fazer exatamente o que você está perguntando, o que de fato faz com que o wget faça o download apenas dos arquivos mais recentes recursivamente. Especificamente, minha linha de comando (higienizada) é:

/usr/bin/wget -v --mirror ftp://user:password@site/ -o /var/log/webmirror -P /var/WebSites
    
por 29.06.2010 / 03:31
-1

Você pode tentar usar:

wget -r -l inf -N http://www.example.org/
    
por 08.07.2010 / 16:32

Tags