fbpx

Comandos Linux – Comando wget

Comando wget do Linux

comando wget

Em sistemas operacionais do tipo Unix, o comando wget baixa arquivos servidos com HTTP, HTTPS ou FTP através de uma rede .

Descrição

O wget é um utilitário gratuito para download não interativo de arquivos da web . Ele suporta HTTP, HTTPS, FTP e protocolos , bem como a recuperação através de HTTP proxies .

O wget não é interativo, o que significa que pode funcionar em segundo plano, enquanto o usuário não estiver conectado, o que permite iniciar uma recuperação e desconectar do sistema, permitindo que o wget termine o trabalho. Por outro lado, a maioria dos navegadores da Web exige interação constante do usuário, o que dificulta a transferência de muitos dados.

O wget pode seguir os links nas páginas HTML e XHTML e criar versões locais de sites remotos, recriando totalmente a estrutura de diretórios do site original, que às vezes é chamada de “download recursivo”. Ao fazer isso, o wget respeita o Padrão de Exclusão de Robô ( robôs. txt ). wget pode ser instruído a converter os links nos arquivos HTML baixados nos arquivos locais para visualização offline.

O wget foi projetado para oferecer robustez em conexões de rede lentas ou instáveis; se um download falhar devido a um problema de rede, ele continuará tentando novamente até que o arquivo inteiro seja recuperado. Se o servidor suportar regetting, ele instruirá o servidor a continuar o download de onde parou.

visão global

A maneira mais simples de usar o wget é fornecê-lo com o local de um arquivo para fazer o download via HTTP. Por exemplo, para baixar o arquivo http://website.com/files/file.zip , este comando:

wget http://website.com/files/file.zip

… faria o download do arquivo no diretório de trabalho .

Existem muitas opções que permitem usar o wget de maneiras diferentes, para diferentes propósitos. Estes são descritos abaixo.

Instalando o wget

Se seu sistema operacional é o Ubuntu , ou de outra Debian baseados em Linux distribuição que usa APT para gestão de pacotes, você pode instalar wget com apt-get :

sudo apt-get install wget

Para outros sistemas operacionais, consulte a documentação do seu gerenciador de pacotes para obter informações sobre como localizar o pacote binário wget e instalá-lo. Ou, você pode instalá-lo da fonte no site GNU em https://www.gnu.org/software/wget/ .

Sintaxe

wget [ opção ] ... [ URL ] ...

Opções básicas de inicialização

-V , –versionExiba a versão do wget e saia.
-h , –helpImprima uma mensagem de ajuda descrevendo todas as opções de linha de comando do wget e saia.
-b , –backgroundVá para o plano de fundo imediatamente após a inicialização. Se nenhum arquivo de saída for especificado via -o , a saída será redirecionada para o wget-log .
-e comando , –execute comandoExecute o comando como se fosse parte do arquivo .wgetrc . Um comando assim chamado será executado após os comandos em .wgetrc , prevalecendo sobre eles.

Opções de log e arquivo de entrada

-o logfile , –output-file = logfileRegistre todas as mensagens no arquivo de log . As mensagens são normalmente relatadas com erro padrão.
-a arquivo de log , –append-output = arquivo de logAnexar ao arquivo de log . Essa opção é igual a -o , apenas é anexada ao arquivo de log em vez de substituir o arquivo de log antigo. Se o arquivo de log não existir, um novo arquivo será criado.
-d , –debugAtive a saída de depuração , o que significa várias informações importantes para os desenvolvedores do wget, se ele não funcionar corretamente. O administrador do sistema pode ter escolhido compilar o wget sem suporte a depuração, caso em que -d não funcionará.

Observe que a compilação com suporte a depuração é sempre segura; O wget compilado com o suporte a depuração não imprimirá nenhuma informação de depuração, a menos que solicitado com -d .

-q , –quietDesligue a saída do wget .
-v , –verboseAtive a saída detalhada , com todos os dados disponíveis. A saída padrão é detalhada.
-nv , – não verbosoSaída não detalhada. Desative detalhadamente sem ficar completamente quieto (use -q para isso), o que significa que as mensagens de erro e informações básicas ainda serão impressas.
-i arquivo , –input-arquivo = arquivoLeia URLs de um arquivo local ou externo. Se ”  ” for especificado como arquivo , os URLs serão lidos a partir da entrada padrão . (Use ” ./- ” para ler um arquivo literalmente chamado de ”  “.)

Se essa função for usada, nenhum URL precisará estar presente na linha de comando. Se houver URLs na linha de comando e no arquivo de entrada, aqueles nas linhas de comando serão os primeiros a serem recuperados. Se –force-html não for especificado, o arquivo deverá consistir em uma série de URLs, um por linha.

No entanto, se você especificar –force-html, o documento será considerado como HTML. Nesse caso, você pode ter problemas com links relativos, que podem ser resolvidos adicionando <base href = ” url “> aos documentos ou especificando –base = url na linha de comando.

Se o arquivo for externo, o documento será tratado automaticamente como HTML se o Tipo de Conteúdo for ” text / html “. Além disso, a localização do arquivo será implicitamente usada como href base se nenhum foi especificado.

-F , –force-htmlQuando a entrada é lida de um arquivo, force-o a ser tratado como um arquivo HTML. Isso permite recuperar links relativos de arquivos HTML existentes no disco local, adicionando <base href = ” url “> ao HTML ou usando a opção de linha de comando –base .
-B URL
–base = URL
Resolve links relativos usando URL como ponto de referência, ao ler links de um arquivo HTML especificado pela opção -i / –input-file (junto com –force-html ou quando o arquivo de entrada foi buscado remotamente a partir de um servidor descrevendo-o como HTML). Esta opção é equivalente à presença de uma marca ” BASE ” no arquivo de entrada HTML, com URL como o valor do atributo ” href “.

Por exemplo, se você especificar http: //foo/bar/a.html para URL e o wget ler ../baz/b.html no arquivo de entrada, ele será resolvido para http: // foo / baz / b .html .

–config = FILEEspecifique o local do arquivo de inicialização que você deseja usar.

Opções de Download

–bind-address = ADDRESSAo fazer conexões TCP / IP do cliente , ligue ao ADDRESS na máquina local. ADDRESS pode ser especificado como um nome de host ou endereço IP . Essa opção pode ser útil se sua máquina estiver vinculada a vários IPs.
-t número , –tries = númeroDefina o número de tentativas como número . Especifique 0 ou inf para repetição infinita. O padrão é tentar novamente 20 vezes, com exceção de erros fatais como “conexão recusada ” ou” não encontrada ” ( 404 ), que não são tentadas novamente.
-O arquivo , –output-document = fileOs documentos não serão gravados nos arquivos apropriados, mas todos serão concatenados juntos e gravados no arquivo .

Se ”  ” for usado como arquivo , os documentos serão impressos na saída padrão, desativando a conversão de links. (Use ” ./- ” para imprimir em um arquivo chamado literalmente ”  “.) O

uso de -O não significa “use o arquivo de nome em vez do arquivo na URL;” ao contrário, é análogo ao redirecionamento do shell : wget -O arquivo http: // foo deve funcionar como wget -O – http: // foo> file ; arquivo será truncadoimediatamente, e todo o conteúdo baixado será gravado lá.

Por esse motivo, -N (para verificação do carimbo de data / hora) não é suportado em combinação com -O : como o arquivo é sempre criado recentemente, ele sempre terá um carimbo de data / hora muito novo. Um aviso será emitido se essa combinação for usada.

Da mesma forma, usar -r ou -p com -O pode não funcionar como o esperado: o wget não apenas baixa o primeiro arquivo para o arquivo e depois o restante para o nome normal: todo o conteúdo baixado será colocado no arquivo. Isso foi desabilitado na versão 1.11, mas foi restabelecido (com um aviso) na 1.11.2, pois há alguns casos em que esse comportamento pode realmente ter algum uso.

Observe que uma combinação com -k é permitida apenas ao fazer o download de um único documento, pois nesse caso ele converterá todos os URIs relativos em externos; -k não faz sentido para vários URIs quando todos estão sendo baixados para um único arquivo; -k pode ser usado apenas quando a saída for um arquivo regular.

-nc , –no-clobberSe um arquivo for baixado mais de uma vez no mesmo diretório, o comportamento do wget dependerá de algumas opções, incluindo -nc . Em certos casos, o arquivo local será “derrotado” ( sobrescrito ), após o download repetido. Em outros casos, será preservado.

Ao executar o wget sem -N , -nc ou -r , o download do mesmo arquivo no mesmo diretório resultará na preservação da cópia original do arquivo e na segunda cópia com o nome file.1 . Se esse arquivo for baixado novamente, a terceira cópia será nomeada file.2 , e assim por diante. Quando -ncé especificado, esse comportamento é suprimido e o wget se recusará a baixar cópias mais recentes do arquivo. Portanto, “no-clobber” é um nome impróprio nesse modo: não é evitado o impedimento (como os sufixos numéricos já estavam impedindo o impedimento), mas sim o salvamento de várias versões que está sendo desativado.

Ao executar o wget com -r , mas sem -N ou -nc , o download de um arquivo resultará na nova cópia substituindo a antiga. A adição de -nc impedirá esse comportamento, fazendo com que a versão original seja preservada e as cópias mais recentes no servidor sejam ignoradas.

Ao executar o wget com -N, com ou sem -r , a decisão de baixar ou não uma cópia mais recente de um arquivo depende do carimbo de data e hora local e remoto e do tamanho do arquivo. -nc não pode ser especificado ao mesmo tempo que -N .

Observe que quando -nc for especificado, os arquivos com os sufixos .html ou .htm serão carregados do disco local e analisados ​​como se tivessem sido recuperados da Web.

-c , –continueContinue recebendo um arquivo parcialmente baixado. Essa opção é útil quando você deseja concluir um download iniciado por uma instância anterior do wget ou por outro programa. Por exemplo:

wget -c ftp://sunsite.doc.ic.ac.uk/ls-lR.Z

Se houver um arquivo chamado ls-lR.Z no diretório atual, o wget assumirá que é a primeira parte do arquivo remoto e solicitará ao servidor que continue a recuperação de um deslocamento igual ao tamanho do arquivo local .

Observe que você não precisa especificar esta opção se desejar apenas que a chamada atual do wget tente novamente o download de um arquivo, caso a conexão seja perdida no meio do caminho, que é o comportamento padrão. -c afeta apenas a retomada de downloads iniciados antes dessa chamada do wget e cujos arquivos locais ainda estão parados.

Sem -c , o exemplo anterior apenas faria o download do arquivo remoto para ls-lR.Z.1, deixando o arquivo ls-lR.Z truncado sozinho.

A partir do wget 1.7, se você usar -c em um arquivo não vazio, e o servidor não suportar o download contínuo, o wget se recusará a iniciar o download do zero, o que arruinaria efetivamente o conteúdo existente. Se você realmente deseja que o download comece do zero, remova o arquivo.

Além disso, começando com o wget 1.7, se você usar -c em um arquivo de tamanho igual ao do servidor, wgetrecusará o download do arquivo e imprimirá uma mensagem explicativa. O mesmo acontece quando o arquivo é menor no servidor do que localmente (presumivelmente porque foi alterado no servidor desde a última tentativa de download), porque “continuar” não é significativo, não ocorre nenhum download.

Por outro lado, ao usar -c , qualquer arquivo que seja maior no servidor do que localmente será considerado um download incompleto e apenas os bytes (comprimento (remoto) – comprimento (local)) serão baixados e pregados no final do local Arquivo. Esse comportamento pode ser desejável em certos casos: por exemplo, você pode usar o wget -c para baixar apenas a nova parte que foi anexada a uma coleta de dados ou arquivo de log.

No entanto, se o arquivo for maior no servidor porque foi alterado, em vez de apenas anexado, você terá um arquivo ilegível. O wget não tem como verificar se o arquivo local é realmente um prefixo válido do arquivo remoto. Você precisa ser especialmente cuidadoso ao usar -c em conjunto com -r , pois cada arquivo será considerado um candidato para “download incompleto”.

Outra instância em que você obterá um arquivo ilegível se tentar usar -c é se você tiver um proxy HTTP fraco que insere uma string “transferência interrompida” no arquivo local. No futuro, uma opção de “reversão” poderá ser adicionada para lidar com este caso.

Observe que -c só funciona com servidores FTP e com servidores HTTP compatíveis com o cabeçalho “Range”.

–progress = tipoSelecione o indicador de progresso que você deseja usar. Os indicadores legais são ” ponto ” e ” barra “.

O indicador ” bar ” é usado por padrão. Ele desenha uma barra de progresso ASCII (também conhecida como “termômetro”), indicando o status da recuperação. Se a saída não for um TTY, a barra ” ponto ” será usada por padrão.

Use –progress = dot para alternar para a exibição ” ponto “. Ele rastreia a recuperação imprimindo pontos na tela, cada ponto representando uma quantidade fixa de dados baixados.

Ao usar a recuperação pontilhada, você também pode definir o estilo especificando o tipo como dot: style. Estilos diferentes atribuem significado diferente a um ponto. Com o estilo ” padrão “, cada ponto representa 1 K , há dez pontos em um cluster e 50 pontos em uma linha. O estilo ” binário ” possui uma orientação mais semelhante ao “computador”: 8 K pontos, aglomerados de 16 pontos e 48 pontos por linha (o que resulta em 384 K linhas). O estilo ” mega ” é adequado para baixar arquivos muito grandes; cada ponto representa 6 4K recuperados, há oito pontos em um cluster e 48 pontos em cada linha (portanto, cada linha contém 3 M).

Observe que você pode definir o estilo padrão usando o comando progress em .wgetrc . Essa configuração pode ser substituída na linha de comando. A exceção é que,o ponto “progresso será favorecido sobre” bar “. Para forçar a saída da barra, use –progress = bar: force .

-N , –timestampingLigue stamping tempo . O arquivo de saída terá um carimbo de data / hora correspondente à cópia remota; se o arquivo já existir localmente e o arquivo remoto não for mais recente, nenhum download ocorrerá.
–no-use-server-timestampsNão defina o carimbo de data e hora do arquivo local por aquele no servidor.

Por padrão, quando um arquivo é baixado, seus registros de data e hora são definidos para corresponder aos do arquivo remoto, o que permite o uso de –timestamping nas chamadas subseqüentes do wget . No entanto, às vezes é útil basear o registro de data e hora do arquivo local quando ele foi realmente baixado; para esse fim, a opção –no-use-server-timestamps foi fornecida.

-S , – resposta do servidorImprima os cabeçalhos enviados pelos servidores HTTP e as respostas enviadas pelos servidores FTP.
–aranhaQuando chamado com esta opção, o wget se comportará como uma web spider , o que significa que não fará o download das páginas, apenas verifique se elas estão lá. Por exemplo, você pode usar o wget para verificar seus favoritos:

wget --spider --force-html -i bookmarks.html

Esse recurso precisa de muito mais trabalho para o wget se aproximar da funcionalidade de aranhas da web reais.

-T segundos , –timeout = segundosDefina o tempo limite da rede para segundos segundos. Esta opção é equivalente a especificar –dns-timeout , –connect-timeout e –read-timeout , tudo ao mesmo tempo.

Ao interagir com a rede, o wget pode verificar o tempo limite e abortar a operação se demorar muito. Isso evita anomalias como leituras suspensas e conexões infinitas. O único tempo limite ativado por padrão é um tempo limite de leitura de 900 segundos. Definir um tempo limite como 0 desativa-o completamente. A menos que você saiba o que está fazendo, é melhor não alterar as configurações de tempo limite padrão.

Todas as opções relacionadas ao tempo limite aceitam valores decimais e valores de subsegundos. Por exemplo,0,1 segundos é uma opção legal (embora não sensata) de tempo limite. Os tempos limite de subsegundos são úteis para verificar os tempos de resposta do servidor ou testar a latência da rede .

–dns-timeout = segundosDefina o tempo limite da pesquisa de DNS para segundos segundos. As pesquisas de DNS que não forem concluídas dentro do tempo especificado falharão. Por padrão, não há tempo limite nas pesquisas de DNS, além do implementado pelas bibliotecas do sistema .
–connect-timeout = segundosDefina o tempo limite da conexão como segundos segundos. As conexões TCP que levarem mais tempo para serem estabelecidas serão abortadas. Por padrão, não há tempo limite de conexão, exceto o implementado pelas bibliotecas do sistema.
–read-timeout = segundosDefina o tempo limite de leitura (e gravação) para segundos segundos. Leituras que demoram mais tempo falharão. O valor padrão para o tempo limite de leitura é 900 segundos.
–limit-rate = quantidadeLimite a velocidade do download para quantificar bytes por segundo. A quantidade pode ser expressa em bytes , kilobytes (com o sufixo k ) ou megabytes (com o sufixo m ). Por exemplo, –limit-rate = 20k limitará a taxa de recuperação a 20 KB / s. Esta opção é útil quando, por qualquer motivo, você não quer wget para consumir toda a largura de banda disponível.

Esta opção permite o uso de números decimais, geralmente em conjunto com sufixos de potência; por exemplo, –limit-rate = 2.5k é um valor legal.

Note que o wgetimplementa a limitação adormecendo a quantidade de tempo apropriada após uma leitura da rede que levou menos tempo do que o especificado pela taxa. Eventualmente, essa estratégia faz com que a transferência TCP diminua para aproximadamente a taxa especificada. No entanto, pode levar algum tempo para que esse equilíbrio seja alcançado; portanto, não se surpreenda se a limitação da taxa não funcionar bem com arquivos muito pequenos.

-w segundos , –wait = segundosAguarde o número especificado de segundos entre as recuperações. O uso desta opção é recomendado, pois diminui a carga do servidor, tornando as solicitações menos frequentes. Em vez de segundos, o tempo pode ser especificado em minutos usando o sufixo m , em horas usando o sufixo h ou em dias usando o sufixo d .

Especificar um valor grande para esta opção é útil se a rede ou o host de destino estiver inativo, para que o wget possa esperar o tempo suficiente para esperar razoavelmente que o erro de rede seja corrigido antes da nova tentativa. O intervalo de espera especificado por esta função é influenciado por –random-wait (veja abaixo).

–waitretry = segundosSe você não quiser que o wget de espera entre cada recuperação, mas apenas entre tentativas de download falhou, você pode usar esta opção. O wget usará o backoff linear, aguardando 1 segundo após a primeira falha em um determinado arquivo e depois 2 segundos após a segunda falha no arquivo, até o número máximo de segundos que você especificar. Portanto, um valor 10 fará com que o wget espere até (1 + 2 + … + 10) = 55 segundos por arquivo.

Por padrão, o wget assumirá um valor de 10 segundos.

–random-waitAlguns sites podem executar análises de log para identificar programas de recuperação, como o wget , procurando similaridades estatisticamente significativas no tempo entre as solicitações. Essa opção faz com que o tempo entre solicitações varie entre 0 e 2 * segundos de espera , em que a espera foi especificada usando a opção –wait , para mascarar a presença do wget a partir dessa análise.
–no-proxyNão use proxies, mesmo se a variável de ambiente * _proxy apropriada estiver definida.
-Q quota , –quota = quotaEspecifique a cota de download para recuperações automáticas. O valor pode ser especificado em bytes (padrão), kilobytes (com k sufixo) ou megabytes (com m sufixo).

Observe que a cota nunca afetará o download de um único arquivo. Portanto, se você especificar wget -Q10k ftp://wuarchive.wustl.edu/ls-lR.gz , todos os ls-lR.gz serão baixados. O mesmo acontece mesmo quando várias URLs são especificadas na linha de comando. No entanto, a cota é respeitada ao recuperar recursivamente ou de um arquivo de entrada. Assim, você pode digitar com segurança os sites wget -Q2m -i ; o download será interrompido quando a cota for excedida.

Definindo cota para 0 ou parainf limita a cota de download.

–no-dns-cacheDesative o cache das pesquisas de DNS. Normalmente, o wget lembra os endereços pesquisados ​​no DNS, para que não precise entrar em contato repetidamente com o servidor DNS para o mesmo conjunto (geralmente pequeno) de endereços que recupera. Este cache existe apenas na memória; uma nova execução do wget entrará em contato com o DNS novamente.

No entanto, foi relatado que em algumas situações não é desejável armazenar em cache nomes de host, mesmo durante a duração de um aplicativo de execução curta como o wget . Com esta opção, o wget emite uma nova pesquisa de DNS (mais precisamente, uma nova chamada para ” gethostbyname ” ou ” getaddrinfo“) sempre que estabelecer uma nova conexão. Observe que esta opção não afetará o cache que pode ser executado pela biblioteca de resolução ou por uma camada de cache externa, como o NSCD.

–restrict-file-names = modesAltere quais caracteres encontrados em URLs remotos podem aparecer nos nomes de arquivos locais gerados a partir desses URLs. Os caracteres restritos por esta opção são escapados , ou seja, substituídos por % HH , em que HH é o número hexadecimal que corresponde ao caractere restrito.

Por padrão, o wget escapa os caracteres que não são válidos como parte dos nomes de arquivo no sistema operacional, além de controlar os caracteres que normalmente não são imprimíveis. Essa opção é útil para alterar esses padrões, porque você está baixando para uma partição não nativa ou porque deseja desativar o escape dos caracteres de controle.

Os modossão um conjunto de valores de texto separados por vírgula. Os valores aceitáveis ​​são unix , windows , nocontrol , ascii , minúsculo e maiúsculo . Os valores unix e windows são mutuamente exclusivos (um substituirá o outro), assim como minúsculas e maiúsculas . Esses últimos são casos especiais, pois não alteram o conjunto de caracteres que seriam escapados, mas forçam os caminhos de arquivos locais a serem convertidos em minúsculas ou maiúsculas.

Quando o modo está definido como unix , o wget escapa do caractere /e os caracteres de controlo nas gamas de 0 – 31 e 128 – 159 . Esta opção é o padrão em sistemas operacionais semelhantes ao Unix .

Quando o modo está definido como windows , o wget escapa dos caracteres \ , / , : ,  , * , < , > e os caracteres de controle nos intervalos 0 – 31 e 128 – 159. Além disso, o wgetno modo Windows, usa + em vez de : para separar host e porta em nomes de arquivos locais e usa @ em vez de & para separar a parte da consulta do nome do arquivo do resto. Portanto, um URL que seria salvo como www.xemacs.org:4300/search.pl?input=blah no modo Unix seria salvo como www.xemacs.org + 4300 / search.pl@input = blah no modo Windows. Este modo é o padrão no Windows.

Se você especificar nocontrol , a saída dos caracteres de controle também será desativada. Essa opção pode fazer sentido quando você estiver baixando URLs cujos nomes contêm caracteres UTF-8 , em um sistema que pode salvar e exibir arquivos no UTF-8 (alguns possíveis valores de bytes usados ​​nas seqüências de bytes UTF-8 se enquadram no intervalo de valores designado pelo wget como “controles”).

O modo ascii é usado para especificar que quaisquer bytes cujos valores estejam fora do intervalo de caracteres ASCII (ou seja, maiores que 127) sejam escapados. Este modo pode ser útil ao salvar nomes de arquivos cuja codificação não corresponde ao usado localmente.

-4 , –inet4-only ; -6 , –inet6-onlyForça a conexão com endereços IPv4 ou IPv6 . Com –inet4-only ou -4 , o wget se conectará apenas aos hosts IPv4, ignorando os registros AAAA no DNS e se recusando a se conectar aos endereços IPv6 especificados nas URLs. Por outro lado, com –inet6-only ou -6 , o wget se conectará apenas aos hosts IPv6 e ignorará os registros A e os endereços IPv4.

Nenhuma das opções deve ser necessária normalmente. Por padrão, um wget com reconhecimento de IPv6 usará a família de endereços especificada pelo registro DNS do host. Se o DNS responder com endereços IPv4 e IPv6, wgetirá testá-los em sequência até encontrar um ao qual possa se conectar. (Além disso, consulte a opção ” –prefer-family ” descrita abaixo.)

Essas opções podem ser usadas para forçar deliberadamente o uso de famílias de endereços IPv4 ou IPv6 em sistemas com duas famílias, geralmente para ajudar na depuração ou para lidar com configurações de rede quebradas. Somente um de –inet6-only e –inet4-only pode ser especificado ao mesmo tempo. Nenhuma opção está disponível no wget compilado sem suporte ao IPv6.

–prefer-family = { none | IPv4 | IPv6 }Quando for possível escolher vários endereços, conecte-se aos endereços com a família de endereços especificada primeiro. A ordem dos endereços retornados pelo DNS é usada sem alterações por padrão.

Isso evita erros espúrios e tenta conectar ao acessar hosts que resolvem endereços IPv6 e IPv4 a partir de redes IPv4. Por exemplo, www.kame.net resolve para 2001: 200: 0: 8002: 203: 47ff: fea5: 3085 e para 203.178.141.194 . Quando a família preferida é ” IPv4 “, o endereço IPv4 é usado primeiro; quando a família preferida é ” IPv6 “, o endereço IPv6 é usado primeiro; se o valor especificado for ” none “, a ordem do endereço retornada pelo DNS será usada sem alterações.

Ao contrário de -4-6 , essa opção não inibe o acesso a nenhuma família de endereços, apenas altera a ordem em que os endereços são acessados. Observe também que a reordenação realizada por esta opção é estável; isso não afeta a ordem dos endereços da mesma família. Ou seja, a ordem relativa de todos os endereços IPv4 e de todos os endereços IPv6 permanece intacta em todos os casos.

–retry-connrefusedConsidere “conexão recusada” um erro transitório e tente novamente. Normalmente, o wget desiste de uma URL quando não é possível se conectar ao site porque a falha na conexão é tomada como um sinal de que o servidor não está em execução e que as novas tentativas não ajudariam. Essa opção é para espelhar sites não confiáveis ​​cujos servidores tendem a desaparecer por curtos períodos de tempo.
–user = usuário , –password = senhaEspecifique o nome de usuário usuário e senha para recuperação de arquivos FTP e HTTP. Esses parâmetros podem ser substituídos usando as opções –ftp-user e –ftp-password para conexões FTP e as opções –http-user e –http-password para conexões HTTP.
–ask-senhaSolicite uma senha para cada conexão estabelecida. Não pode ser especificado quando –password estiver sendo usado, porque eles são mutuamente exclusivos.
–no-iriDesative o suporte ao URI (IRI) internacionalizado. Use –iri para ativá-lo. O suporte ao IRI é ativado por padrão.

Você pode definir o estado padrão do suporte ao IRI usando o comando ” iri ” em .wgetrc . Essa configuração pode ser substituída na linha de comando.

–local-encoding = codificaçãoForça o wget a usar a codificação como a codificação padrão do sistema. Isso afeta como o wget converte URLs especificados como argumentos do código do idioma para UTF-8 para suporte ao IRI.

wget use a função ” nl_langinfo () ” e a variável de ambiente “CHARSET” para obter o código do idioma. Se falhar, o ASCII é usado.

Você pode definir a codificação local padrão usando o comando ” local_encoding ” em .wgetrc . Essa configuração pode ser substituída na linha de comando.

–remote-encoding = codificaçãoForce o wget a usar a codificação como a codificação padrão do servidor remoto. Isso afeta como o wget converte URIs encontrados em arquivos de codificação remota em UTF-8 durante uma busca recursiva. Esta opção é útil apenas para suporte ao IRI, para a interpretação de caracteres não ASCII.

Para HTTP, a codificação remota pode ser encontrada no cabeçalho HTTP ” Content-Type ” e na metatag HTML ” Content-Type http-equiv “.

Você pode definir a codificação padrão usando o comando ” remoteencoding ” em .wgetrc . Essa configuração pode ser substituída na linha de comando.

–unlinkForce o wget a desvincular o arquivo em vez de refazer o arquivo existente. Essa opção é útil para fazer o download no diretório com links físicos .

Opções de Diretório

-nd , –no-diretóriosNão crie uma hierarquia de diretórios ao recuperar recursivamente. Com essa opção ativada, todos os arquivos serão salvos no diretório atual , sem obstruções (se um nome aparecer mais de uma vez, os nomes dos arquivos receberão extensões .n ).
-x , –force-diretóriosO oposto de -nd ; crie uma hierarquia de diretórios, mesmo se um não tivesse sido criado de outra forma. Por exemplo, o wget -x http://fly.srk.fer.hr/robots.txt salva o arquivo baixado em fly.srk.fer.hr/robots.txt .
-nH , –no-host-diretóriosDesative a geração de diretórios prefixados pelo host. Por padrão, chamar wget com -r http://fly.srk.fer.hr/ criará uma estrutura de diretórios começando com fly.srk.fer.hr/ . Esta opção desabilita esse comportamento.
–protocol-diretóriosUse o nome do protocolo como um componente de diretório dos nomes de arquivos locais. Por exemplo, com esta opção, o wget -r http: // host será salvo em http / host / … em vez de apenas em host / ….
–cut-dirs = númeroIgnore os componentes do diretório numérico . Essa opção é útil para obter um controle refinado sobre o diretório em que a recuperação recursiva será salva.

Pegue, por exemplo, o diretório em ftp://ftp.xemacs.org/pub/xemacs/ . Se você o recupera com -r , ele será salvo localmente em ftp.xemacs.org/pub/xemacs/ . Enquanto a opção -nH pode remover a parte ftp.xemacs.org/ , você ainda está preso ao pub / xemacs , que é onde –cut-dirs é útil; faz com que o wget não “veja” numerar componentes do diretório remoto. Aqui estão vários exemplos de como –cut-dirs opção funciona:

(sem opções)ftp.xemacs.org/pub/xemacs/
-nHpub / xemacs /
-nH –cut-dirs = 1xemacs /
-nH –cut-dirs = 2.
–cut-dirs = 1ftp.xemacs.org/xemacs/

Se você deseja apenas se livrar da estrutura de diretórios, essa opção é semelhante a uma combinação de -nd e -P . No entanto, ao contrário de -nd , –cut-dirs não perde com subdiretórios; por exemplo, com -nH –cut-dirs = 1 , um subdiretório beta / será colocado no xemacs / beta , como seria de esperar.

-P prefixo , –directory-prefix = prefixoDefina o prefixo do diretório como prefixo . O prefixo do diretório é o diretório em que todos os outros arquivos e subdiretórios serão salvos, ou seja, na parte superior da árvore de recuperação. O padrão é ” . ” (O diretório atual).

Opções HTTP

-E , –html-extensionSe um arquivo do tipo application / xhtml + xml ou text / html for baixado e o URL não terminar com o regexp ” \. [Hh] [Tt] [Mm] [Ll]? “, Essa opção causará o sufixo . html a ser anexado ao nome do arquivo local. Essa opção é útil, por exemplo, quando você está espelhando um site remoto que usa páginas .asp , mas deseja que as páginas espelhadas sejam visíveis no servidor Apache padrão . Outro bom uso para isso é quando você está baixando materiais gerados por CGI . Um URL como http://site.com/article.cgi?25 será salvo como article.cgi? 25.html .

Observe que os nomes de arquivo alterados dessa maneira serão baixados novamente toda vez que você espelhar um site, porque o wget não pode dizer que o arquivo X.html local corresponde à URL remota X (já que ainda não sabe que o arquivo URL produz saída do tipo text / html ou application / xhtml + xml ).

A partir da versão 1.12, o wget também garantirá que todos os arquivos baixados do tipo text / css terminem no sufixo .css e a opção tenha sido renomeada de –html-extension , para refletir melhor seu novo comportamento. O nome da opção antiga ainda é aceitável, mas agora deve ser considerado reprovado.

Em algum momento no futuro, essa opção poderá ser expandida para incluir sufixos para outros tipos de conteúdo, incluindo tipos de conteúdo que não são analisados ​​pelo wget .

–http-user = usuário , –http-passwd = senhaEspecifique o nome de usuário usuário e senha em um servidor HTTP. De acordo com o desafio, o wget os codificará usando o esquema de autenticação “básico” (inseguro) ou “digerir”.

Outra maneira de especificar nome de usuário e senha está no próprio URL. Qualquer um dos métodos revela sua senha para quem se incomoda em executar o ps . Para impedir que as senhas sejam vistas, armazene-as em .wgetrc ou .netrc e proteja esses arquivos de outros usuários com chmod . Se as senhas forem importantes, também não as deixe nos arquivos; edite os arquivos e exclua-os após o wget iniciar o download.

–no-cacheDesative o cache do lado do servidor. Nesse caso, o wget enviará ao servidor remoto uma diretiva apropriada (Pragma: sem cache ) para obter o arquivo do serviço remoto, em vez de retornar a versão em cache. Essa opção é especialmente útil para recuperar e liberar documentos desatualizados em servidores proxy.

O cache é permitido por padrão.

–nada de biscoitosDesative o uso de cookies . Os cookies são um mecanismo para manter o estado do servidor. O servidor envia ao cliente um cookie usando o cabeçalho ” Set-Cookie “, e o cliente responde com o mesmo cookie mediante solicitações adicionais. Como os cookies permitem que os proprietários do servidor acompanhem os visitantes e os sites troquem essas informações, alguns os consideram uma violação da privacidade. O padrão é usar cookies; no entanto, o armazenamento de cookies não está ativado por padrão.
–load-cookies arquivoCarregue cookies do arquivo antes da primeira recuperação HTTP. file é um arquivo de texto no formato originalmente usado pelo arquivo cookies.txt do Netscape .

Você normalmente usa essa opção ao espelhar sites que exigem que você esteja logado para acessar parte ou todo o conteúdo deles. O processo de login normalmente funciona pelo servidor da web que emite um cookie HTTP ao receber e verificar suas credenciais. O cookie é reenviado pelo navegador ao acessar essa parte do site e, assim, comprova sua identidade.

O espelhamento de um site exige que o wget envie os mesmos cookies que o navegador envia ao se comunicar com o site. Para fazer isso, use –load-cookies ; ponto wgetpara o local do arquivo cookies.txt e ele enviará os mesmos cookies que seu navegador enviaria na mesma situação. Navegadores diferentes mantêm os arquivos de cookies de texto em diferentes locais:

Netscape 4.xOs cookies estão em ~ / .netscape / cookies.txt .
Mozilla e Netscape 6.xO arquivo de cookies da Mozilla também é chamado de cookies.txt , localizado em algum lugar em ~ / .mozilla , no diretório do seu perfil. O caminho completo geralmente acaba parecendo com ~ / .mozilla / default / some-weird-string / cookies.txt .
Internet ExplorerVocê pode produzir um arquivo de cookie que o wget pode usar usando o menu Arquivo, Importar e Exportar, Exportar Cookies. Testado com Internet Explorer 5 (uau. Isso é antigo), mas não é garantido que funcione com versões anteriores.
outros navegadoresSe você estiver usando um navegador diferente para criar seus cookies, –load-cookies funcionará apenas se você puder localizar ou produzir um arquivo de cookies no formato Netscape que o wget espera.

Se você não pode usar –load-cookies , ainda pode haver uma alternativa. Se o seu navegador suportar um “gerenciador de cookies”, você poderá usá-lo para visualizar os cookies usados ​​ao acessar o site que você está espelhando. Anote o nome e o valor do cookie e instrua manualmente o wget a enviá-los, ignorando o suporte “oficial” ao cookie:

wget --no-cookies --header "Cookie: <name> = <value>"
–save-cookies arquivoSalve os cookies no arquivo antes de sair. Isso não salvará os cookies que expiraram ou que não têm prazo de validade (os chamados “cookies de sessão”), mas também vê –keke-session-cookies .
–keep-session-cookiesQuando especificado, faz com que –save-cookies também salve os cookies da sessão. Normalmente, os cookies de sessão não são salvos porque devem ser mantidos na memória e esquecidos quando você sai do navegador. Salvá-los é útil em sites que exigem que você faça login ou visite a página inicial antes de poder acessar algumas páginas. Com essa opção, várias execuções do wget são consideradas uma única sessão do navegador no que diz respeito ao site.

Como o formato do arquivo de cookie normalmente não carrega cookies de sessão, o wget os marca com um carimbo de data / hora de expiração de 0 . wget ‘s –load-cookiesreconhece esses cookies como sessão, mas pode confundir outros navegadores. Além disso, observe que os cookies carregados serão tratados como outros cookies de sessão, o que significa que se você quiser –save-cookies para preservá-los novamente, deverá usar –keep-session-cookies novamente.

–ignore-lengthInfelizmente, alguns servidores HTTP (programas CGI, para ser mais preciso) enviam cabeçalhos falsos ” Comprimento do Conteúdo “, o que faz o wget começar a zurrar como um porco preso, pois acredita que nem todo o documento foi recuperado. Você pode detectar essa síndrome se o wget tentar obter o mesmo documento repetidamente, sempre alegando que a conexão (normalmente normal) foi fechada no mesmo byte.

Com esta opção, o wget ignora o cabeçalho ” Content-Length “, como se nunca tivesse existido.

–header = linha de cabeçalhoEnvie a linha de cabeçalho junto com o restante dos cabeçalhos em cada solicitação HTTP. O cabeçalho fornecido é enviado como está, o que significa que ele deve conter nome e valor separados por dois pontos e não deve conter novas linhas .

Você pode definir mais de um cabeçalho adicional especificando –header mais de uma vez.

wget --header = 'Accept-Charset: iso-8859-2' 
     --header = 'Idioma de aceitação: hr' 
     http://fly.srk.fer.hr/

A especificação de uma sequência vazia como o valor do cabeçalho limpará todos os cabeçalhos anteriores definidos pelo usuário.

A partir do wget 1.10, essa opção pode ser usada para substituir os cabeçalhos gerados automaticamente. Este exemplo instrui o wget a se conectar ao host local , mas a especificar foo.bar no cabeçalho ” Host “:

wget --header = "Host: foo.bar" http: // localhost /

Nas versões de wget antes da utilização de tais 1,10 –header causada envio de cabeçalhos duplicados.

–max-redirect = númeroEspecifica o número máximo de redirecionamentos a seguir para um recurso. O padrão é 20, que geralmente é muito mais que o necessário. No entanto, nas ocasiões em que você deseja permitir mais (ou menos), esta é a opção a ser usada.
–proxy-user = user , –proxy-password = passwordEspecifique o nome de usuário usuário e senha para autenticação em um servidor proxy. O wget os codificará usando o esquema de autenticação “básico”.

Considerações de segurança semelhantes àquelas com –http-password também pertencem aqui.

–referer = urlInclua o cabeçalho ” Referer: url ” na solicitação HTTP. Útil para recuperar documentos com processamento no lado do servidor que pressupõem que eles sempre estão sendo recuperados por navegadores da web interativos e só saem corretamente quando o Referer está definido em uma das páginas que apontam para eles.
–save-headersSalve os cabeçalhos enviados pelo servidor HTTP no arquivo, precedendo o conteúdo real, com uma linha vazia como separador.
-U agent-string , –user-agent = agent-stringIdentifique como agente-sequência para o servidor HTTP.

O protocolo HTTP permite que os clientes se identifiquem usando um campo de cabeçalho ” User-Agent “. Isso permite distinguir o software WWW, geralmente para fins estatísticos ou para rastreamento de violações de protocolo. wget normalmente identifica como ” Wget / versão “, versão sendo o número da versão atual do wget .

No entanto, sabe-se que alguns sites impõem a política de adaptar a saída de acordo com o ” User-Agent“- informações fornecidas. Embora isso não seja uma idéia tão ruim em teoria, ela foi abusada por servidores que negavam informações a clientes que não sejam o Netscape (historicamente) ou, mais frequentemente, o Microsoft Internet Explorer. Esta opção permite alterar a opção” Usuário Linha -Agent “emitida pelo wget . O uso desta opção é desencorajado, a menos que você realmente saiba o que está fazendo. A

especificação do agente do usuário vazio com –user-agent =” “ instrui o wget a não enviar o cabeçalho ” User-Agent ” Solicitações HTTP.

–post-data = string , –post-file = arquivoUse POST como o método para todas as solicitações HTTP e envie os dados especificados no corpo da solicitação. –post-data envia string como dados, enquanto –post-file envia o conteúdo do arquivo . Fora isso, eles funcionam exatamente da mesma maneira. Em particular, ambos esperam conteúdo no formato ” chave1 = valor1 & chave2 = valor2 “, com codificação percentual para caracteres especiais; a única diferença é que um espera seu conteúdo como parâmetro de linha de comando e o outro aceita seu conteúdo de um arquivo. Em particular, –post-file não serve para transmitir arquivos como anexos de formulário: eles devem aparecer como ” key = value“data (com codificação percentual apropriada), como todo o resto. O wget atualmente não suporta” multipart / form-data “para transmitir dados POST ; apenas” application / x-www-form-urlencoded “. Somente um dos –post -data e –post-file devem ser especificados.

Lembre-se de que o wget precisa saber o tamanho dos dados do POST com antecedência. Portanto, o argumento para ” –post-file ” deve ser um arquivo regular; especificar um FIFO ou algo como / dev / stdinnão vai funcionar. Não está muito claro como solucionar essa limitação inerente ao HTTP / 1.0. Embora o HTTP / 1.1 introduza transferência em partes que não exija o conhecimento prévio da duração da solicitação, um cliente não pode usá-las, a menos que saiba que está falando com um servidor HTTP / 1.1. E não é possível saber até que receba uma resposta, que por sua vez exige que a solicitação seja concluída, o que é uma espécie de problema de galinha e ovo.

Observe que, se o wget for redirecionado após a conclusão da solicitação POST, ele não enviará os dados do POST para o URL redirecionado. Como os URLs que processam o POST geralmente respondem com um redirecionamento para uma página comum, que não deseja ou aceita o POST. Não está completamente claro que esse comportamento é ótimo; se não der certo, pode ser alterado no futuro.

Este exemplo mostra como efetuar logon em um servidor usando o POST e, em seguida, continue com o download das páginas desejadas, presumivelmente acessíveis apenas a usuários autorizados. Primeiro, efetuamos login no servidor, o que pode ser feito apenas uma vez.

wget --save-cookies cookies.txt --post-data 
     'user = foo & password = bar' http://server.com/auth.php

E então agarramos a página (ou páginas) com que nos preocupamos:

wget --load-cookies cookies.txt 
     -p http://server.com/interesting/article.php

Se o servidor estiver usando cookies de sessão para rastrear a autenticação do usuário, o procedimento acima não funcionará porque –save-cookies não os salvará (e nem os navegadores) e o arquivo cookies.txt estará vazio. Nesse caso, use –keep-session-cookies junto com –save-cookies para forçar o salvamento dos cookies da sessão.

– disposição do conteúdoSe isso estiver definido, o suporte experimental (não totalmente funcional) para os cabeçalhos ” Disposição de Conteúdo ” será ativado. Atualmente, esta opção pode resultar em viagens de ida e volta ao servidor para uma solicitação ” HEAD ” e é conhecida por sofrer alguns bugs, razão pela qual não está atualmente habilitada por padrão.

Esta opção é útil para alguns programas CGI de download de arquivos que usam cabeçalhos ” Disposição de Conteúdo ” para descrever qual deve ser o nome de um arquivo baixado.

–trust-server-namesSe isso estiver definido, em um redirecionamento, o último componente da URL de redirecionamento será usado como o nome do arquivo local. Por padrão, é usado o último componente no URL original.
–auth-no-challengeSe essa opção for fornecida, o wget enviará informações básicas de autenticação HTTP (nome de usuário e senha em texto sem formatação) para todas as solicitações, assim como o wget 1.10.2 e anteriormente, por padrão.

O uso desta opção não é recomendado e destina-se apenas a suportar alguns servidores obscuros, que nunca enviam desafios de autenticação HTTP, mas aceitam informações de autenticação não solicitadas, por exemplo, além da autenticação baseada em formulário.

Opções HTTPS (SSL / TLS)

Para suportar downloads HTTP criptografados ( HTTPS ), o wget deve ser compilado com uma biblioteca SSL externa , atualmente OpenSSL. Se o wget for compilado sem suporte a SSL, nenhuma dessas opções estará disponível.

–secure-protocol = protocolEscolha o protocolo seguro a ser usado. Os valores permitidos são auto , SSLv2 , SSLv3 e TLSv1 . Se auto for usado, a biblioteca SSL terá a liberdade de escolher o protocolo apropriado automaticamente, o que é obtido enviando uma saudação SSLv2 e anunciando o suporte para SSLv3 e TLSv1, que é o padrão.

A especificação de SSLv2, SSLv3 ou TLSv1 força o uso do protocolo correspondente. Essa opção é útil ao conversar com implementações de servidor SSL antigas e com erros que dificultam a escolha do OpenSSL para a versão correta do protocolo. Felizmente, esses servidores são bastante raros.

–no-check-certificateNão verifique o certificado do servidor com as autoridades de certificação disponíveis. Além disso, não exija que o nome do host da URL corresponda ao nome comum apresentado pelo certificado.

No wget 1.10, o padrão é verificar o certificado do servidor contra as autoridades de certificação reconhecidas, interrompendo o handshake SSL e interrompendo o download se a verificação falhar. Embora isso ofereça downloads mais seguros, ele interrompe a interoperabilidade com alguns sites que funcionavam com versões anteriores do wget , particularmente aqueles que usam certificados autoassinados, expirados ou inválidos. Esta opção força um modo de operação “inseguro” que transforma os erros de verificação do certificado em avisos e permite que você continue.

Se você encontrar erros de “verificação de certificado” ou aqueles que dizem que “nome comum não corresponde ao nome do host solicitado”, você pode usar esta opção para ignorar a verificação e prosseguir com o download. Use essa opção apenas se estiver convencido da autenticidade do site ou se realmente não se importa com a validade do certificado. Quase sempre é uma má idéia não verificar os certificados ao transmitir dados confidenciais ou importantes.

–certificate = arquivoUse o certificado do cliente armazenado no arquivo . Essas informações são necessárias para servidores configurados para exigir certificados dos clientes que se conectam a eles. Normalmente, um certificado não é necessário e essa opção é opcional.
–certificate-type = typeEspecifique o tipo do certificado do cliente. Os valores legais são PEM (assumido por padrão) e DER, também conhecido como ASN1.
–private-key = arquivoLeia a chave privada do arquivo . Esta opção permite que você forneça a chave privada em um arquivo separado do certificado.
–private-key-type = typeEspecifique o tipo da chave privada. Os valores aceitos são PEM (o padrão) e DER.
–ca-certificate = arquivoUse arquivo como o arquivo com o pacote de autoridades de certificação (“CA”) para verificar os pares. Os certificados devem estar no formato PEM.

Sem essa opção, o wget procura certificados CA nos locais especificados pelo sistema, escolhidos no momento da instalação do OpenSSL.

–ca-directory = diretórioEspecifica o diretório que contém os certificados de CA no formato PEM. Cada arquivo contém um certificado de CA e o nome do arquivo é baseado em um valor de hash derivado do certificado. Isso é obtido através do processamento de um diretório de certificado com o utilitário ” c_rehash ” fornecido com o OpenSSL. O uso do diretório –ca- é mais eficiente que o –ca-certificate quando muitos certificados são instalados porque permite ao Wget buscar certificados sob demanda.

Sem essa opção, o wget procura certificados CA nos locais especificados pelo sistema, escolhidos no momento da instalação do OpenSSL.

–random-file = arquivoUse o arquivo como fonte de dados aleatórios para propagar o gerador de números pseudo-aleatórios em sistemas sem / dev / random .

Nesses sistemas, a biblioteca SSL precisa de uma fonte externa de aleatoriedade para inicializar. A aleatoriedade pode ser fornecida pelo EGD (consulte –egd-file abaixo) ou lida a partir de uma fonte externa especificada pelo usuário. Se essa opção não for especificada, o wget procurará dados aleatórios em $ RANDFILE ou, se não estiver definido , em $ HOME / .rnd . Se nenhum desses estiver disponível, é provável que a criptografia SSL não seja utilizável.

Se você estiver recebendo o “Não foi possível propagar o OpenSSL PRNG; desabilitando o SSL”. erro, você deve fornecer dados aleatórios usando alguns dos métodos descritos acima.

–egd-file = arquivoUse o arquivo como o soquete EGD. EGD significa Entropy Gathering Daemon, um programa no espaço do usuário que coleta dados de várias fontes imprevisíveis do sistema e os disponibiliza a outros programas que possam precisar. O software de criptografia, como a biblioteca SSL, precisa de fontes de aleatoriedade não repetitiva para propagar o gerador de números aleatórios usado para produzir chaves criptograficamente fortes.

O OpenSSL permite ao usuário especificar sua própria fonte de entropia usando a variável de ambiente “RAND_FILE”. Se essa variável não estiver definida, ou se o arquivo especificado não produzir aleatoriedade suficiente, o OpenSSL lerá dados aleatórios do soquete EGD especificado usando esta opção.

Se esta opção não for especificada (e o comando de inicialização equivalente não for usado), o EGD nunca será contatado. O EGD não é necessário em sistemas Unix modernos que suportam/ dev / aleatório .

Opções de FTP

–ftp-user = user , –ftp-password = senhaEspecifique o nome de usuário usuário e senha em um servidor FTP. Sem isso, ou a opção de inicialização correspondente, a senha padrão é -wget @ , normalmente usada para FTP anônimo.

Outra maneira de especificar nome de usuário e senha está no próprio URL. Qualquer um dos métodos revela sua senha para quem se incomoda em executar o ps . Para impedir que as senhas sejam vistas, armazene-as em .wgetrc ou .netrc e proteja esses arquivos de outros usuários com chmod . Se as senhas forem importantes, também não as deixe nos arquivos; edite os arquivos e exclua-os após o wget iniciar o download.

– sem remover listaNão remova os arquivos .listing temporários gerados pelas recuperações de FTP. Normalmente, esses arquivos contêm as listagens de diretório bruto recebidas dos servidores FTP. Não removê-los pode ser útil para fins de depuração ou quando você deseja verificar facilmente o conteúdo dos diretórios do servidor remoto (por exemplo, para verificar se o espelho que você está executando está completo).

Observe que, apesar de o wget gravar em um nome de arquivo conhecido para esse arquivo, isso não é um problema de segurança no cenário de um usuário criar .listing um link simbólico para / etc / passwd ou algo assim e solicitar ao root para executar o wget em seu diretório. Dependendo das opções usadas, o wgetse recusará a gravar em .listing , fazendo com que a operação de globbing / recursão / registro de hora falhe, ou o link simbólico será excluído e substituído pelo arquivo .listing real ou a listagem será gravada em um arquivo .listing.number.

Embora essa situação não seja um problema, o root nunca deve executar o wget em um diretório de usuário não confiável. Um usuário pode fazer algo tão simples quanto vincular index.html a / etc / passwd e solicitar que o root execute o wget com -N ou -r, para que o arquivo seja substituído.

–no-globDesative o globbing FTP . Englobamento refere-se ao uso de caracteres especiais de shell-like ( wildcards ), como * , [ e ] para recuperar mais de um arquivo do mesmo diretório de uma vez, como:

wget ftp://gnjilux.srk.fer.hr/*.msg

Por padrão, o globbing será ativado se o URL contiver um caractere globbing. Esta opção pode ser usada para ativar ou desativar permanentemente o globbing.

Pode ser necessário citar o URL para evitar que ele seja expandido pelo seu shell . Globbing faz com que o wget procure uma lista de diretórios, que é específica do sistema. É por isso que atualmente funciona apenas com servidores FTP Unix (e aqueles que emulam a saída ls do Unix ).

–no-passivo-ftpDesative o uso do modo de transferência FTP passivo. O FTP passivo exige que o cliente se conecte ao servidor para estabelecer a conexão de dados e não o contrário.

Se a máquina estiver conectada diretamente à Internet, o FTP passivo e o ativo deverão funcionar igualmente bem. Por trás da maioria das configurações de firewall e NAT, o FTP passivo tem mais chances de funcionar. No entanto, em algumas configurações raras de firewall, o FTP ativo realmente funciona quando o FTP passivo não. Se você suspeita que seja esse o caso, use esta opção ou defina ” passive_ftp = off ” no seu arquivo init.

–retr-symlinksGeralmente, ao recuperar diretórios FTP recursivamente e um link simbólico é encontrado, o arquivo vinculado ao não é baixado. Em vez disso, um link simbólico correspondente é criado no sistema de arquivos local. O arquivo apontado não será baixado, a menos que essa recuperação recursiva o encontre separadamente e faça o download de qualquer maneira.

Quando –retr-symlinks é especificado, no entanto, links simbólicos são percorridos e os arquivos apontados são recuperados. No momento, essa opção não faz com que o wget passe links simbólicos para diretórios e recorra a eles, mas no futuro deve ser aprimorado para fazer isso.

Observe que, ao recuperar um arquivo (não um diretório) porque foi especificado na linha de comando, e não porque foi repetido, essa opção não tem efeito. Links simbólicos são sempre atravessados ​​neste caso.

Opções de recuperação recursiva

-r , –recursiveAtive a recuperação recursiva .
-l profundidade , – nível profundidadeEspecifique recursão máximo nível de profundidade profundidade . A profundidade máxima padrão é 5 .
–delete-afterEsta opção diz ao wget para excluir todos os arquivos baixados, depois de o fazer. É útil para buscar previamente páginas populares por meio de um proxy, por exemplo:

wget -r -nd --delete-after http://whatever.com/~popular/page/

A opção -r é recuperar recursivamente e -nd para não criar diretórios.

Observe que –delete-after exclui arquivos na máquina local. Não emite o comando DELE FTP para sites FTP remotos, por exemplo. Além disso, observe que quando –delete-after é especificado, –convert-links é ignorado, portanto, os arquivos .orig não são criados em primeiro lugar.

-k , –convert-linksApós a conclusão do download, converta os links no documento para torná-los adequados para exibição local. Isso afeta não apenas os hiperlinks visíveis, mas qualquer parte do documento vinculado a conteúdo externo, como imagens incorporadas, links para folhas de estilo, hiperlinks para conteúdo não HTML, etc. Observe que, quando –output-document for especificado, –convert-links é ignorado. Cada link será alterado de uma das duas maneiras:

1. Os links para os arquivos que foram baixados pelo wget serão alterados para se referir ao arquivo para o qual apontam como um link relativo. Exemplo: se o arquivo baixado /foo/doc.html vincular a /bar/img.gif , também baixou, o link em doc.htmlserá modificado para apontar para ../bar/img.gif . Esse tipo de transformação funciona de maneira confiável para combinações arbitrárias de diretórios.

2. Os links para arquivos que não foram baixados pelo wget serão alterados para incluir o nome do host e o caminho absoluto do local para o qual eles apontam. Exemplo: se o arquivo baixado /foo/doc.html vincular a /bar/img.gif (ou a ../bar/img.gif ), o link em doc.html será modificado para apontar para http: // nome do host / bar / img.gif .

Por esse motivo, a navegação local funciona de maneira confiável: se um arquivo vinculado foi baixado, o link fará referência ao seu nome local; se não tiver sido baixado, o link fará referência ao endereço completo da Internet, em vez de apresentar um link quebrado. O fato de os links anteriores serem convertidos em links relativos garante que você possa mover a hierarquia baixada para outro diretório.

Note-se que só no fim do download pode wget saber quais links foram baixados. Por isso, o trabalho realizado por -k será executado no final de todos os downloads.

-K , – convertido em backupAo converter um arquivo, faça backup da versão original com um sufixo .orig . Afeta o comportamento de -N .
-m , –mirrorAtive as opções adequadas para o espelhamento. Essa opção ativa a recursão e a marcação de tempo, define a profundidade da recursão infinita e mantém as listagens de diretórios FTP. Atualmente, é equivalente a -r -N -l inf -nr .
-p , –página-requisitosEssa opção faz com que o wget faça o download de todos os arquivos necessários para exibir corretamente uma determinada página HTML. Incluindo itens como imagens embutidas, sons e folhas de estilo referenciadas. Normalmente, ao baixar uma única página HTML, todos os documentos necessários que possam ser necessários para exibi-la corretamente não são baixados. Usar -r junto com -l pode ajudar, mas como o wget geralmente não distingue documentos externos e embutidos, geralmente fica com “documentos em folha” que estão faltando seus requisitos.

Por exemplo, digamos que o documento 1.html contenha um < IMG> tag referenciando 1.gif e um <A>tag apontando para o documento externo 2.html . Digamos que 2.html seja semelhante, mas que sua imagem seja 2.gif e esteja vinculada a 3.html . Digamos que isso continue até um número arbitrariamente alto.

Se alguém executar o comando:

wget -r -l 2 http: // <site> /1.html

então 1.html , 1.gif , 2.html , 2.gif e 3.html serão baixados. Como você pode ver, 3.html não possui seu requisito 3.gif, porque o wget está contando o número de saltos (até 2) para 1.html para determinar onde parar a recursão. No entanto, com este comando:

wget -r -l 2 -p http: // <site> /1.html

todos os arquivos acima e 3.html requisito ‘s 3.gif será baixado. Similarmente,

wget -r -l 1 -p http: // <site> /1.html

fará com que 1.html , 1.gif , 2.html e 2.gif sejam baixados. Pode-se pensar que:

wget -r -l 0 -p http: // <site> /1.html

baixaria apenas 1.html e 1.gif , mas infelizmente esse não é o caso, porque -l 0 é equivalente a -l inf ; isto é, recursão infinita. Para baixar uma única página HTML (ou algumas delas, todas especificadas na linha de comando ou em um arquivo de entrada -i- URL) e seus (ou seus) requisitos, deixe -r e -l :

wget -p http: // <site> /1.html

Observe que o wget se comportará como se -r tivesse sido especificado, mas apenas essa página e seus requisitos serão baixados. Os links dessa página para documentos externos não serão seguidos. Na verdade, para baixar uma única página e todos os seus requisitos (mesmo que existam em sites separados) e garantir que o lote seja exibido corretamente localmente, esse autor gosta de usar algumas opções além de -p :

wget -E -H -k -K -p http: // <site> / <documento>

Para finalizar este tópico, vale a pena saber que a idéia do wget de um link de documento externo é qualquer URL especificado em uma tag <A> , <AREA> ou <LINK> diferente de ” <LINK REL =” folha de estilo “> .

–strict-commentsAtive a análise rigorosa dos comentários em HTML. O padrão é finalizar comentários na primeira ocorrência de -> .

De acordo com as especificações, os comentários em HTML são expressos como declarações SGML . Declaração é uma marcação especial que começa com <! e termina com > , como <! DOCType …> , que pode conter comentários entre um par de – delimitadores . Comentários HTML são “declarações vazias”, declarações SGML sem nenhum texto que não seja de comentário. Portanto, <! – foo -> é um comentário válido, assim como <! – one– –wo -> , mas <! – 1–2 -> não é.

Por outro lado, a maioria dos criadores de HTML não vê comentários como algo além do texto delimitado por <! – e -> , que não é exatamente o mesmo. Por exemplo, algo como <! ————> funciona como um comentário válido, desde que o número de traços seja um múltiplo de quatro. Caso contrário, o comentário tecnicamente dura até o próximo  , que pode estar na outra extremidade do documento. Por esse motivo, muitos navegadores populares ignoram completamente a especificação e implementam o que os usuários esperam: comentários delimitados com <! – e -> .

Até a versão 1.9, o wgetinterpretou os comentários estritamente, o que resultou na falta de links em muitas páginas da web que eram exibidas bem nos navegadores, mas tiveram o infortúnio de conter comentários não compatíveis. A partir da versão 1.9, o wget se juntou às fileiras de clientes que implementam comentários “ingênuos ”, encerrando cada comentário na primeira ocorrência de -> .

Se, por qualquer motivo, você desejar uma análise estrita de comentários , use esta opção para ativá-lo em.

Opções de aceitação / rejeição recursivas

-A acclist , –accept acclist ; -R rejlist , –reject rejlistEspecifique listas separadas por vírgula de sufixos ou padrões de nomes de arquivos para aceitar ou rejeitar. Observe que, se qualquer um dos caracteres curinga, * , [ ou ] , apareça em um elemento de acclist ou rejlist , será tratado como um padrão, e não como um sufixo.
-D lista de domínio , –domains = lista de domínioDefina domínios a serem seguidos. domain-list é uma lista de domínios separados por vírgula. Observe que ele não liga -H .
–exclude-domains lista de domínioEspecifique os domínios que não devem ser seguidos.
–follow-ftpSiga os links FTP dos documentos HTML. Sem essa opção, o wget ignorará todos os links FTP.
–follow-tags = listO wget possui uma tabela interna de pares de tags / atributos HTML que considera ao procurar documentos vinculados durante uma recuperação recursiva. Se um usuário deseja que apenas um subconjunto dessas tags seja considerado, no entanto, ele ou ela deve especificar essas tags em uma lista separada por vírgula com esta opção.
–ignore-tags = listEsta opção é o oposto da opção –follow-tags . Para ignorar determinadas tags HTML ao procurar recursivamente documentos para download, especifique-os em uma lista separada por vírgula.

No passado, essa opção era a melhor aposta para baixar uma única página e seus requisitos, usando uma linha de comando como:

wget --ignore-tags = a, área -H -k -K -r http: // <site> / <documento>

No entanto, o autor desta opção encontrou uma página com tags como ” <LINK REL =” home “HREF =” / “> ” e chegou à conclusão de que especificar tags para ignorar não era suficiente. Não se pode simplesmente dizer ao wget para ignorar ” <LINK> “, porque as folhas de estilo não serão baixadas. Agora, a melhor opção para baixar uma única página e seus requisitos é a opção –página-requisitos .

–ignorar casoIgnore maiúsculas e minúsculas ao combinar arquivos e diretórios. Isso influencia o comportamento das opções -R , -A , -I e -X , bem como o globbing implementado durante o download de sites FTP. Por exemplo, com esta opção, -A * .txt corresponderá a arquivo1.txt , mas também a arquivo2.TXT , arquivo3.TxT e assim por diante.
-H –span-hostsHabilite a abrangência entre hosts ao fazer recuperação recursiva.
-L –relativeSiga apenas links relativos. Útil para recuperar uma página inicial específica sem distrações, nem mesmo as dos mesmos hosts.
-I list , –include-directory = listEspecifique uma lista de diretórios separados por vírgula que você deseja seguir ao fazer o download. Os elementos da lista podem conter caracteres curinga.
-X list , –exclude-directory = listEspecifique uma lista de diretórios separados por vírgula que você deseja excluir do download. Os elementos da lista podem conter caracteres curinga.
-np , –no-parentNunca ascenda ao diretório pai ao recuperar recursivamente. Esta opção é uma opção útil, pois garante que apenas os arquivos abaixo de uma determinada hierarquia serão baixados.

arquivos

/ etc / wgetrcLocal padrão do arquivo de inicialização global.
.wgetrcArquivo de inicialização do usuário.

Exemplos

wget https://www.computerhope.com/

Faça o download do arquivo da página inicial padrão (index.htm) em www.computerhope.com . O arquivo será salvo no diretório de trabalho.

wget --limit-rate = 200k http://www.example.org/files/archive.zip

Faça o download do arquivo archive.zip em www.example.org e limite o uso da largura de banda do download para 200k / s .

wget -c http://www.example.org/files/archive.zip

Faça o download do arquivo archive.zip em example.org e, se houver um download parcial no diretório atual, retome o download de onde parou.

wget -b http://www.example.org/files/archive.zip

Faça o download do arquivo archive.zip em segundo plano, retornando ao prompt de comando nesse ínterim.

wget --spider http://www.example.org/files/archive.zip

Usa o modo “web spider” para verificar se existe um arquivo remoto. A saída será semelhante ao seguinte:

Modo Spider ativado. Verifique se o arquivo remoto existe.
Solicitação HTTP enviada, aguardando resposta ... 200 OK
Comprimento: 1206 (1,2K) [aplicativo / zip]
Arquivo remoto existe.
wget --mirror -p --convert-links -P ./example-mirror http://www.example.org

Faça o download de um espelho completo do site www.example.org na pasta ./example-mirror para visualização local.

wget -Q5m http://www.example.org/files/archive.zip

Pare de baixar o arquivo archive.zip depois que cinco megabytes forem transferidos com êxito. Essa transferência pode ser retomada posteriormente usando a opção -c .

curl – Transfere dados para ou de um servidor.

22 de novembro de 2019

Sobre nós

A Linux Force Brasil é uma empresa que ama a arte de ensinar. Nossa missão é criar talentos para a área de tecnologia e atender com excelência nossos clientes.

CNPJ: 13.299.207/0001-50
SAC:         0800 721 7901

Comercial  Comercial: (11) 3796-5900

Suporte:    (11) 3796-5900

Copyright © Linux Force Security  - Desde 2011.