Atualizar um site que recebi com o wget

0

Existe uma maneira de atualizar um site que copiou para visualização off-line no terminal? Eu baixei everquest.allakhazam.com e estava apenas curioso porque é atualizado regularmente. Eu não quero ter que passar por todo o processo de download várias vezes, porque isso leva um tempo.

Também sou muito inexperiente com linux de qualquer tipo, e não sou super experiente em terminal. Então, por favor, seja gentil. XD

Obrigado antecipadamente!

    
por Lyndon Howlett 06.04.2017 / 20:09

3 respostas

2

wget -N http://www.yoururl.com/ onde www.yoururl.com é o URL que você deseja revisitar deve fazer o truque bem. A opção -N solicitará ao servidor a data da última modificação. Se o arquivo local for mais recente, o arquivo remoto não será reavaliado. No entanto, se o arquivo remoto for mais recente, wget prosseguirá na busca normal. Note que você desejará iniciar o wget no mesmo diretório em que você o iniciou originalmente.

Uma nota sobre as limitações citadas de man wget :

 If a file is downloaded more than once in the same directory,
           Wget's behavior depends on a few options, including -nc.  In
           certain cases, the local file will be clobbered, or overwritten,
           upon repeated download.  In other cases it will be preserved.

           When running Wget without -N, -nc, -r, or -p, downloading the same
           file in the same directory will result in the original copy of file
           being preserved and the second copy being named file.1.  If that
           file is downloaded yet again, the third copy will be named file.2,
           and so on.  (This is also the behavior with -nd, even if -r or -p
           are in effect.)  When -nc is specified, this behavior is
           suppressed, and Wget will refuse to download newer copies of file.
       Therefore, ""no-clobber"" is actually a misnomer in this
       mode---it's not clobbering that's prevented (as the numeric
       suffixes were already preventing clobbering), but rather the
       multiple version saving that's prevented.

Dependendo da sua situação, você também pode precisar dos switches -r (recursivo) e -l (profundidade de nível). Para mais informações sobre os muitos switches e opções disponíveis, veja man wget

Se o wget não funcionar para você:

Uma alternativa mencionada aqui para wget is httrack , que também é capaz de espelhar um site e atualizá-lo.

httrack está disponível em primeiro lugar enabling the Universe repository e, em seguida, instalando através do centro de software ou da linha de comando com o comando sudo apt-get update && sudo apt-get install httrack

Fontes wget:

link

man wget

link

httrack de origem:

link

    
por Elder Geek 06.04.2017 / 20:56
0

De aqui I tenho que usar wget -N site.com . No entanto, parece que você precisa fazer o download do site com wget -S site.com para verificar a data da última modificação. Então -N verifica para ver quando a última data de modificação foi e se é mais recente que a versão 'antiga', atualiza o arquivo.

    
por Peyto 06.04.2017 / 20:52
0

wget suporta isso usando a opção --timestamping (também conhecida como -N ). Ele definirá o horário de modificação do (s) arquivo (s) baixado (s) para Last-Modified cabeçalho HTTP.

Quando você tentar baixar o (s) arquivo (s) novamente, ele enviará um cabeçalho If-Not-Modified-Since , ao qual o servidor pode responder com 304 Not Modified .

Se você tentar isso com o link , verá

$ wget --timestamping http://www.jasny.net
--2017-04-06 22:56:37--  http://www.jasny.net/
Resolving www.jasny.net (www.jasny.net)... 151.101.36.133
Connecting to www.jasny.net (www.jasny.net)|151.101.36.133|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 18433 (18K) [text/html]
Saving to: ‘index.html’

index.html

2017-04-06 22:56:37 (1,15 MB/s) - ‘index.html’ saved [18433/18433]

Da segunda vez

$ wget --timestamping http://www.jasny.net
--2017-04-06 22:56:38--  http://www.jasny.net/
Resolving www.jasny.net (www.jasny.net)... 151.101.36.133
Connecting to www.jasny.net (www.jasny.net)|151.101.36.133|:80... connected.
HTTP request sent, awaiting response... 304 Not Modified
File ‘index.html’ not modified on server. Omitting download.

Infelizmente, everquest.allakhazam.com não envia um cabeçalho Last-Modified . Portanto, usar --timestamping não funcionará. Além disso, o servidor não responde ao cabeçalho If-Not-Modified-Since .

Sem o servidor que suporta isso, não há outra opção a não ser baixar todo o site toda vez.

    
por Jasny - Arnold Daniels 06.04.2017 / 21:00