Wget: como fazer download de arquivos no Linux

Se você procura por um meio de fazer download de arquivos da web, através da linha de comando, o Wget é uma das ferramentas de uso simples e objetivo, que irá lhe auxiliar nessa necessidade.

Essa ferramenta suporta o download de arquivos fazendo uso dos protocolos HTTP, HTTPS e FTP.

Dentre as opções que o Wget possui, existem as funções que permitem baixar vários arquivos, a retomada de downloads interrompidos, a limitação da largura de banda, downloads de forma recursiva, download em segundo plano bem como espelhamento de site, entre outros.

O Wget é compatível com qualquer distribuição Linux, tanto nas mais antigas bem como nas mais recentes, a sua instalação é descomplicada. Por exemplo, você pode usar o wget para baixar arquivos em um servidor VPS Linux na Homehost.

Neste artigo, você irá conferir explicações e exemplos práticos sobre o uso dessa poderosa ferramenta e suas principais opções.

Como instalar o Wget no Linux

O wget vem pré-instalado na ampla maioria das distribuições Linux e concluir a sua instalação é bem simples.

Você pode iniciar conferindo se o Wget está presente na máquina Linux desejada.

Portanto, abra a interface do terminal, digite wget e pressione a tecla Enter.

Se o Wget estiver instalado, o terminal irá exibir o seguinte aviso para você wget: missing URL.

verificando a instalação do wget

Em contrapartida, se não estiver instalado, o terminal exibirá o aviso: wget command not found ou No such file or directory.

O wget não está instalado

Havendo a confirmação de que não há o Wget instalado, você poderá fazer sua instalação de forma fácil, através do gerenciador de pacotes da distribuição que você está usando.

Como instalar o Wget em distribuições baseadas em Debian, como Ubuntu, Minti.

Sintaxe e saída esperada:

$ sudo apt install wget

como fazer a instalação do wget no ubuntu

Como instalar o Wget em distribuições RedHat, como no CentOS e Fedora.

Instalar o Wget em distribuições RedHat é tão simples quanto em distribuições baseadas em Debian.

Sintaxe e saída esperada:

$ sudo yum install wget

instalar o ubuntu no centos

Conhecendo a estrutura do Wget no Linux

Antes de você iniciar a prática no uso do comando Wget, vale a pena conferir como é a estrutura da sintaxe deste utilitário.

As sintaxes do Wget possuem a seguinte definicão:

wget [opções] [url]

Ao passo que, opções são qualquer uma ou mais de uma das funções auxiliares em que o Wget aceita. Iremos tratar delas a seguir.

A URL refere-se à URL de um arquivo ou diretório em que desejamos fazer o download ou sincronismo.

Como fazer downloads com o Wget

No método de uso mais básico, sem o uso de qualquer opção, o Wget faz o download do dado para o diretório em que o usuário estiver no momento.

No exemplo a seguir, vamos baixar o arquivo zipado da instalação mais recente do WordPress.

Comando e saída:

$ wget https://wordpress.org/latest.zip

usando o wget para download

Então, como você pode conferir, o resultado da saída do comando começa pela resolução da URL digitada pelo IP correspondente a ela.

Em seguida, é feita a conexão de fato ao servidor externo e o download do arquivo é iniciado.

Enquanto a transferência segue em execução, uma barra de progresso é exibida junto ao nome do arquivo, seu tamanho, velocidade do download e tempo de conclusão.

Quando a transferência terminar, o arquivo estará localizado no mesmo diretório em que o usuário estiver no momento.

Caso você queira ocultar a saída e ter a execução silenciosa deste comando, inclua a opção -q, ficando assim:

$ wget -q https://wordpress.org/latest.zip

Se você baixar o mesmo arquivo outra vez e no mesmo diretório, o Wget irá incluir um número ao final do arquivo.

Baixar e salvar arquivo com um nome diferente usando o Wget

Você pode se deparar em algum momento com algum procedimento em que seja necessário alterar o nome de um arquivo baixado. Todavia, fazer isso durante o download fará você economizar alguns comandos.

Então, para baixar um arquivo com um nome diferente do qual está na fonte, use a opção -O seguida pelo nome que desejado.

$ wget -O wordpress-instalador.zip https://wordpress.org/latest.zip

Em suma, o comando acima salvará o arquivo wordpress.zip com o nome wordpress-instalador.zip quando o download terminar.

Baixando um arquivo para um diretório específico

Ao usar o Wget de forma básica, você perceberá que o comando salvará o conteúdo baixado no diretório em que seu usuário estiver.

Quando você precisar salvar o conteúdo baixado em um local diferente, deverá usar a opção -P na sintaxe do comando.

Por exemplo, salvaremos o instalador do WordPress em um diretório diferente do atual do usuário:

$ wget -P /home/dados https://wordpress.org/latest.zip

fazendo download de arquivos com wget

O comando acima fará com que o arquivo .zip em questão seja salvo no diretório /home/dados.

Como limitar a velocidade de download

Quando você possui a tarefa de baixar um arquivo muito grande e não pode ocupar a largura de banda durante a transferência, há a possibilidade de impor um limite de tráfego enquanto o arquivo trafega na rede.

Assim, você poderá fazer uso da opção –limit-rate, que por padrão, mede a velocidade em bytes/segundo.

Porém, você precisará também informar qual a unidade de medida na transferência, acrescentando k, m ou g, que respectivamente representam em unidades kilobytes, megabytes e gigabytes.

No exemplo abaixo, o comando fará download do pacote do cluster mysql, tendo 1MB como limite de velocidade no download:

$ wget –limit-rate=1m https://downloads.mysql.com/archives/get/p/14/file/mysql-cluster_8.0.33-1ubuntu23.04_amd64.deb-bundle.tar

limitando a velocidade de download com o wget

Desse modo, o download permanece com a velocidade constante de 1MB do início ao fim, não ocupando toda a velocidade da conexão.

Como retomar o download interrompido

Em situações em que você baixar arquivos muito grande e houver a interrupção da conexão, basta utilizar a opção -c para retomar o processo do download de onde foi interrompido sem a necessidade de recomeçar do zero.

Neste exemplo, fizemos a retomada do download do arquivo do cluster mysql.

$ wget -c https://downloads.mysql.com/archives/get/p/14/file/mysql-cluster_8.0.33-1ubuntu23.04_amd64.deb-bundle.tar

retomando download interrompido

Porém, entretanto, se o servidor que hospeda os dados não suportar a retomada do processo, o comando fará o reinício da transferência desde o zero, substituindo o arquivo que foi parcialmente baixado.

Como fazer download em segundo plano com o wget

Fazer o download em segundo plano nos permite continuar utilizando o terminal enquanto a transferência estiver em andamento.

Isso é muito útil quando temos acesso a apenas uma interface de linha de comando e queremos economizar tempo em tarefas mais demoradas.

Sendo assim, fazemos uso da opção -b, como no próximo exemplo, em que fazemos o download novamente do arquivo do cluster mysql.

$ wget -b https://downloads.mysql.com/archives/get/p/14/file/mysql-cluster_8.0.33-1ubuntu23.04_amd64.deb-bundle.tar

fazendo o download de forma silenciosa

Como você pode observar acima, na saída do comando há o armazenamento no arquivo wget-log.

E ainda assim, se em algum momento você sentir a necessidade de conferir como está o processo do download, use o comando tail.

Sintaxe do comando:

$tail -f wget-log

Configurar tentativas de repetição

Em conexões com a internet que oscilam com frequência, pode haver interrupção do download várias vezes.

Portanto, para contornar este problema, é possível fazermos o aumento das tentativas de retomada do download usando a opção -tries.

Exemplo de sintaxe:

$ wget -tries=100 https://wordpress.org/latest.zip

impor configuração de repetição

Dessa forma, o comando fará até 100 tentativas de download, se necessário.

Como baixar vários arquivos de uma vez com o Wget

Você tem vários arquivos de um mesmo servidor de origem ou de várias origens diferentes, então, poderá baixá-los de forma simultânea no mesmo comando.

Para tanto, basta você usar a opção -i seguida de um arquivo contendo a lista de URLs dos dados a serem baixadas. Vale lembrar que cada URL precisa estar separada da outra, uma por linha.

Como exemplo, criamos o arquivo downloads.txt e nele incluímos as URLs para download do instalador do Grafana, Mysql e de um patch do Linux.

$ wget -i downloads.txt

A seguir, podemos conferir a saída do comando. O download do arquivo seguinte somente inicia quando o anterior terminar.

usando o wget para downloads simultâneos

Fazer download pelo FTP

Para baixar um arquivo de um servidor FTP protegido por senha, especifique o nome de usuário e a senha conforme mostrado abaixo:

$ wget –ftp-user=Usuario_FTP –ftp-password=Senha_FTP ftp://ftp.siteexemplo.com/nomdoarquivo.extensao

Como recuperar um site completo com o Wget

O Wget é capaz de baixar a cópia da estrutura de um site.

Desse modo, com a opção  –mirror e algumas outras opções adicionais, o comando efetua a cópia local completa do site desejado, incluindo links internos, estrutura do CSS, código JavaScript, imagens.

$ wget –mirror –convert-links –page-requisites –no-parent -P Downloads/site/ https://www.homehost.com.br/blog/

clonando um site

Uma breve explicação sobre as opções usadas no comando:

–mirror: Faz com que o download se torne repetitivo.

–convert-links: Essa opção é responsável por converter todos os links para uso funcional no ambiente offline.

–page-requisites: Opção que faz a inclusão de todos os arquivos essenciais da estrutura do site, os já citados CSS, JS e as imagens.

–no-parent: Faz com que todos os diretórios acima da hierarquia pai não sejam baixados.

Em outras palavras, será baixado apenas o conteúdo do site.

Como localizar links quebrados com o Wget

Se você faz manutenção de sites e está à procura de uma forma para avaliar os links dos sites, à procura de links que retornem o erro 404, poderá usar o poder do comando Wget para essa finalidade.

$ wget -o wget-log -r -l 5 –spider https://www.homehost.com.br

Explicando as opções usadas com o comando:

-o: Responsável por reunir a saída do comando em um arquivo para análise posteriormente.

-l: Define a quantidade de repetições que o comando fará, caso necessário.

-r: Essa opção é transforma o comando em recursivo, ou seja, fará a varredura em subdiretórios e links.

–spider: Ativa o modo “aranha”, responsável por fazer a busca dos links quebrados, sem a necessidade de salvar páginas.

Enquanto o comando estiver em execução, não haverá saída.

Então, quando o comando for finalizado, você poderá analisar o arquivo web-log para filtrar os links com problemas.

Para tanto, há o seguinte comando para facilitar este trabalho:

$ grep -B 2 ‘404’ wget-log | grep “http” | cut -d ” ” -f 4 | sort -u

usando o wget para analise de links

Como baixar arquivos numerados

Se você possui uma lista de arquivos que está numerada e deseja baixar uma determinada faixa deles, poderá fazer isso de forma fácil, para tanto, use a seguinte sintaxe:

$ wget https://www.homehost.com.br/blog/{1..50}.jpg

baixar faixa de arquivos numerados

No término do comando, haverá um pequeno relatório informando o tempo decorrido, quantos arquivos encontrados bem como o tamanho deles.

Ignorar a checagem do https

Atualmente, a ampla maioria dos sites possuem certificados SSL, nos obrigando a digitar o protocolo HTTPS no início da URL em algumas situações.

Mas, com o comando Wget temos uma forma de ignorar o protocolo de segurança, principalmente em casos que o certificado está inválido (vencido).

Então, usamos a opção –no-check-certificate para essa finalidade.

Exemplo de sintaxe:

$ wget –no-check-certificate http://wordpress.org/latest.zip

wget: ignorar o protocolo https

Rejeitar determinados arquivos com o Wget

Às vezes, não precisamos baixar um ou mais tipos de arquivos de determinados formatos. Nestes casos, usamos a opção –reject.

$ wget –reject=html –mirror -p –convert-links -P ./LOCAL https://www.homehost.com.br

Com isso, essa sintaxe de comando irá varrer o site por completo, baixando todos os arquivos, exceto os arquivos que possuem a extensão .html.

Baixar determinada extensão de arquivos com o Wget

Um pouco contrário ao exemplo anterior, no comando a seguir, você poderá baixar determinado tipo de arquivo com base em sua extensão e as demais extensões não serão baixadas.

Por exemplo, com o comando abaixo, você poderá baixar os arquivos com a extensão .jpg:

$ wget -r -A.jpg –mirror -p –convert-links -P ./LOCAL https://www.homehost.com.br

download de extensão de arquivos com wget

Assim como no exemplo anterior, essa sintaxe de comando irá varrer o site por completo, porém, baixará apenas os arquivos .jpg.

Em ambos os exemplos, ao final do processo o tempo decorrido é mostrado, a quantidade de arquivos baixados assim como o tamanho total.

Considerações finais

Por aqui, vimos neste artigo várias das muitas utilidades que o Wget possui no Linux.

Com este comando, você é capaz de baixar desde um arquivo simples a múltiplos arquivos.

Além disso, vimos como é possível retomar downloads parciais, e usá-lo para outros fins avançados como o download de um site ou como localizar URLs com erro 404.

Você pode conferir outras funcionalidades não abordadas neste artigo, dessa forma, visite a página do Manual do Wget.

Este artigo foi útil?

Obrigado pela resposta!
Marcio S

Marcio S

Ganhe 30% OFF

Indique seu nome e e-mail,e ganhe um cupom de desconto de 30% para sempre na Homehost!