Pesquisa de site

10 exemplos de comando Wget (Linux File Downloader) no Linux


Neste artigo, revisaremos o utilitário wget que recupera arquivos da World Wide Web (WWW) usando protocolos amplamente utilizados como HTTP , HTTPS, FTP e FTPS.

Wget é um utilitário gratuito de linha de comando e downloader de arquivos de rede, que vem com muitos recursos que facilitam o download de arquivos, incluindo:

  • Baixe arquivos grandes ou espelhe sites completos da web ou FTP.
  • Baixe vários arquivos de uma vez.
  • Defina largura de banda e limite de velocidade para downloads.
  • Baixe arquivos por meio de proxies.
  • Pode retomar downloads abortados.
  • Espelhar diretórios recursivamente.
  • Funciona na maioria dos sistemas operacionais do tipo UNIX, bem como no Windows.
  • Operação autônoma/em segundo plano.
  • Suporte para conexões HTTP persistentes.
  • Suporte para SSL/TLS para downloads criptografados usando a biblioteca OpenSSL ou GnuTLS.
  • Suporte para downloads IPv4 e IPv6.

Sintaxe de comando Wget

A sintaxe básica do Wget é:

wget [option] [URL]

Primeiro, verifique se o utilitário wget já está instalado ou não em sua caixa Linux, usando o seguinte comando.

rpm -q wget         [On RHEL/CentOS/Fedora and Rocky Linux/AlmaLinux]
dpkg -l | grep wget [On Debian, Ubuntu and Mint]

Instale o Wget no Linux

Se Wget não estiver instalado, você pode instalá-lo usando o gerenciador de pacotes padrão do seu sistema Linux, conforme mostrado.

sudo apt install wget -y      [On Debian, Ubuntu and Mint]
sudo yum install wget -y      [On RHEL/CentOS/Fedora and Rocky Linux/AlmaLinux]
sudo emerge -a net-misc/wget  [On Gentoo Linux]
sudo pacman -Sy wget           [On Arch Linux]
sudo zypper install wget      [On OpenSUSE]    

A opção -y usada aqui é para evitar avisos de confirmação antes de instalar qualquer pacote. Para mais exemplos e opções de comandos YUM e APT leia nossos artigos sobre:

  • 20 comandos Linux YUM para gerenciamento de pacotes
  • 15 exemplos de comandos APT no Ubuntu/Debian e Mint
  • 45 exemplos de comandos Zypper para gerenciar OpenSUSE Linux

1. Baixe um arquivo com Wget

O comando baixará um único arquivo e o armazenará em um diretório atual. Ele também mostra o progresso do download, o tamanho, a data e a hora durante o download.

wget http://ftp.gnu.org/gnu/wget/wget2-2.0.0.tar.gz

--2021-12-10 04:15:16--  http://ftp.gnu.org/gnu/wget/wget2-2.0.0.tar.gz
Resolving ftp.gnu.org (ftp.gnu.org)... 209.51.188.20, 2001:470:142:3::b
Connecting to ftp.gnu.org (ftp.gnu.org)|209.51.188.20|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 3565643 (3.4M) [application/x-gzip]
Saving to: ‘wget2-2.0.0.tar.gz’

wget2-2.0.0.tar.gz      100%[==========>]   3.40M  2.31MB/s    in 1.5s    

2021-12-10 04:15:18 (2.31 MB/s) - ‘wget2-2.0.0.tar.gz’ saved [3565643/3565643]

2. Arquivo de download Wget com um nome diferente

Usando a opção -O (maiúsculas), baixa arquivos com nomes de arquivo diferentes. Aqui fornecemos o nome do arquivo wget.zip conforme mostrado abaixo.

wget -O wget.zip http://ftp.gnu.org/gnu/wget/wget2-2.0.0.tar.gz

--2021-12-10 04:20:19--  http://ftp.gnu.org/gnu/wget/wget-1.5.3.tar.gz
Resolving ftp.gnu.org (ftp.gnu.org)... 209.51.188.20, 2001:470:142:3::b
Connecting to ftp.gnu.org (ftp.gnu.org)|209.51.188.20|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 446966 (436K) [application/x-gzip]
Saving to: ‘wget.zip’

wget.zip      100%[===================>] 436.49K   510KB/s    in 0.9s    

2021-12-10 04:20:21 (510 KB/s) - ‘wget.zip’ saved [446966/446966]

3. Wget Baixe vários arquivos com protocolo HTTP e FTP

Aqui vemos como baixar vários arquivos usando os protocolos HTTP e FTP com o comando wget simultaneamente.

wget http://ftp.gnu.org/gnu/wget/wget2-2.0.0.tar.gz ftp://ftp.gnu.org/gnu/wget/wget2-2.0.0.tar.gz.sig

--2021-12-10 06:45:17--  http://ftp.gnu.org/gnu/wget/wget2-2.0.0.tar.gz
Resolving ftp.gnu.org (ftp.gnu.org)... 209.51.188.20, 2001:470:142:3::b
Connecting to ftp.gnu.org (ftp.gnu.org)|209.51.188.20|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 3565643 (3.4M) [application/x-gzip]
Saving to: ‘wget2-2.0.0.tar.gz’

wget2-2.0.0.tar.gz      100%[==========>]   4.40M  4.31MB/s    in 1.1s    

2021-12-10 06:46:10 (2.31 MB/s) - ‘wget2-2.0.0.tar.gz’ saved [3565643/3565643]

4. Wget Baixe vários arquivos de um arquivo

Para baixar vários arquivos de uma vez, use a opção -i com a localização do arquivo que contém a lista de URLs a serem baixadas. Cada URL precisa ser adicionado em uma linha separada, conforme mostrado.

Por exemplo, o seguinte arquivo ‘download-linux.txt‘ contém a lista de URLs a serem baixados.

cat download-linux.txt 

https://releases.ubuntu.com/20.04.3/ubuntu-20.04.3-desktop-amd64.iso
https://download.rockylinux.org/pub/rocky/8/isos/x86_64/Rocky-8.5-x86_64-dvd1.iso
https://cdimage.debian.org/debian-cd/current/amd64/iso-dvd/debian-11.2.0-amd64-DVD-1.iso
wget -i download-linux.txt

--2021-12-10 04:52:40--  https://releases.ubuntu.com/20.04.3/ubuntu-20.04.3-desktop-amd64.iso
Resolving releases.ubuntu.com (releases.ubuntu.com)... 91.189.88.248, 91.189.88.247, 91.189.91.124, ...
Connecting to releases.ubuntu.com (releases.ubuntu.com)|91.189.88.248|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 3071934464 (2.9G) [application/x-iso9660-image]
Saving to: ‘ubuntu-20.04.3-desktop-amd64.iso’

ubuntu-20.04.3-desktop-amd64   4%[=>      ] 137.71M  11.2MB/s    eta 3m 30s
...

Se sua lista de URLs tiver um padrão de numeração específico, você poderá adicionar chaves para buscar todos os URLs que correspondam ao padrão. Por exemplo, se quiser baixar uma série de kernels Linux começando da versão 5.1.1 a 5.1.15, você pode fazer o seguinte.

wget https://mirrors.edge.kernel.org/pub/linux/kernel/v5.x/linux-5.1.{1..15}.tar.gz

--2021-12-10 05:46:59--  https://mirrors.edge.kernel.org/pub/linux/kernel/v5.x/linux-5.1.1.tar.gz
Resolving mirrors.edge.kernel.org (mirrors.edge.kernel.org)... 147.75.95.133, 2604:1380:3000:1500::1
Connecting to mirrors.edge.kernel.org (mirrors.edge.kernel.org)|147.75.95.133|:443... connected.
WARNING: The certificate of ‘mirrors.edge.kernel.org’ is not trusted.
WARNING: The certificate of ‘mirrors.edge.kernel.org’ is not yet activated.
The certificate has not yet been activated
HTTP request sent, awaiting response... 200 OK
Length: 164113671 (157M) [application/x-gzip]
Saving to: ‘linux-5.1.1.tar.gz’

linux-5.1.1.tar.gz      100%[===========>] 156.51M  2.59MB/s    in 61s     

2021-12-10 05:48:01 (2.57 MB/s) - ‘linux-5.1.1.tar.gz’ saved [164113671/164113671]

--2021-12-10 05:48:01--  https://mirrors.edge.kernel.org/pub/linux/kernel/v5.x/linux-5.1.2.tar.gz
Reusing existing connection to mirrors.edge.kernel.org:443.
HTTP request sent, awaiting response... 200 OK
Length: 164110470 (157M) [application/x-gzip]
Saving to: ‘linux-5.1.2.tar.gz’

linux-5.1.2.tar.gz     19%[===========]  30.57M  2.58MB/s    eta 50s

5. Wget retomar download incompleto

No caso de download de arquivos grandes, às vezes pode acontecer de interromper o download, nesse caso podemos retomar o download do mesmo arquivo de onde parou com a opção -c.

Mas quando você inicia o download de arquivos sem especificar -c uma opção wget adicionará a extensão .1 no final do arquivo, considerada como uma nova download. Portanto, é uma boa prática adicionar a opção -c ao baixar arquivos grandes.

# wget -c https://releases.ubuntu.com/20.04.3/ubuntu-20.04.3-desktop-amd64.iso

--2021-12-10 05:27:59--  https://releases.ubuntu.com/20.04.3/ubuntu-20.04.3-desktop-amd64.iso
Resolving releases.ubuntu.com (releases.ubuntu.com)... 91.189.88.247, 91.189.91.123, 91.189.91.124, ...
Connecting to releases.ubuntu.com (releases.ubuntu.com)|91.189.88.247|:443... connected.
HTTP request sent, awaiting response... 206 Partial Content
Length: 3071934464 (2.9G), 2922987520 (2.7G) remaining [application/x-iso9660-image]
Saving to: ‘ubuntu-20.04.3-desktop-amd64.iso’

ubuntu-20.04.3-desktop-amd64.iso        5%[++++++> ]   167.93M  11.1MB/s               
^C
[root@tecmint ~]# wget -c https://releases.ubuntu.com/20.04.3/ubuntu-20.04.3-desktop-amd64.iso
--2021-12-10 05:28:03--  https://releases.ubuntu.com/20.04.3/ubuntu-20.04.3-desktop-amd64.iso
Resolving releases.ubuntu.com (releases.ubuntu.com)... 91.189.88.248, 91.189.91.124, 91.189.91.123, ...
Connecting to releases.ubuntu.com (releases.ubuntu.com)|91.189.88.248|:443... connected.
HTTP request sent, awaiting response... 206 Partial Content
Length: 3071934464 (2.9G), 2894266368 (2.7G) remaining [application/x-iso9660-image]
Saving to: ‘ubuntu-20.04.3-desktop-amd64.iso’

ubuntu-20.04.3-desktop-amd64.iso        10%[+++++++=====> ] 296.32M  17.2MB/s    eta 2m 49s ^

6. Site inteiro do Wget Mirror

Para baixar, espelhar ou copiar um site inteiro para visualização offline, você pode usar o seguinte comando que fará uma cópia local do site junto com todos os ativos (JavaScript, CSS, Imagens).

wget --recursive --page-requisites --adjust-extension --span-hosts --convert-links --restrict-file-names=windows --domains yoursite.com --no-parent yoursite.com

Explicação do comando acima.

wget \
     --recursive \ # Download the whole site.
     --page-requisites \ # Get all assets/elements (CSS/JS/images).
     --adjust-extension \ # Save files with .html on the end.
     --span-hosts \ # Include necessary assets from offsite as well.
     --convert-links \ # Update links to still work in the static version.
     --restrict-file-names=windows \ # Modify filenames to work in Windows as well.
     --domains yoursite.com \ # Do not follow links outside this domain.
     --no-parent \ # Don't follow links outside the directory you pass in.
         yoursite.com/whatever/path # The URL to download

7. Wget baixar arquivos em segundo plano

Com a opção -b você pode enviar um download em segundo plano imediatamente após o início do download e os logs serem gravados no arquivo wget.log.

wget -b wget.log https://releases.ubuntu.com/20.04.3/ubuntu-20.04.3-desktop-amd64.iso

Continuing in background, pid 8999.
Output will be written to ‘wget.log’.

8. Wget define limites de velocidade de download de arquivos

Com a opção --limit-rate=100k, o limite de velocidade de download é restrito a 100k e os logs serão criados em wget.log conforme mostrado abaixo.

wget -c --limit-rate=100k -b wget.log https://releases.ubuntu.com/20.04.3/ubuntu-20.04.3-desktop-amd64.iso

Continuing in background, pid 9108.
Output will be written to ‘wget-log’.

Visualize o arquivo wget.log e verifique a velocidade de download do wget.

tail -f wget-log 

 5600K .......... .......... .......... .......... ..........  0%  104K 8h19m
 5650K .......... .......... .......... .......... ..........  0%  103K 8h19m
 5700K .......... .......... .......... .......... ..........  0%  105K 8h19m
 5750K .......... .......... .......... .......... ..........  0%  104K 8h18m
 5800K .......... .......... .......... .......... ..........  0%  104K 8h18m
 5850K .......... .......... .......... .......... ..........  0%  105K 8h18m
 5900K .......... .......... .......... .......... ..........  0%  103K 8h18m
 5950K .......... .......... .......... .......... ..........  0%  105K 8h18m
 6000K .......... .......... .......... .......... ..........  0% 69.0K 8h20m
 6050K .......... .......... .......... .......... ..........  0%  106K 8h19m
 6100K .......... .......... .......... .......... ..........  0% 98.5K 8h20m
 6150K .......... .......... .......... .......... ..........  0%  110K 8h19m
 6200K .......... .......... .......... .......... ..........  0%  104K 8h19m
 6250K .......... .......... .......... .......... ..........  0%  104K 8h19m
...

9. Wget Baixe arquivos protegidos por senha via FTP e HTTP

Para baixar um arquivo de um servidor FTP protegido por senha, você pode usar as opções --ftp-user=username e --ftp-password=password conforme mostrado.

wget --ftp-user=narad --ftp-password=password ftp://ftp.example.com/filename.tar.gz

Para baixar um arquivo de um servidor HTTP protegido por senha, você pode usar as opções --http-user=username e --http-password=password conforme mostrado.

wget --http-user=narad --http-password=password http://http.example.com/filename.tar.gz

10. Wget ignora verificação de certificado SSL

Para ignorar a verificação do certificado SSL durante o download de arquivos via HTTPS, você pode usar a opção --no-check-certificate:

wget --no-check-certificate https://mirrors.edge.kernel.org/pub/linux/kernel/v5.x/linux-5.1.1.tar.gz

--2021-12-10 06:21:21--  https://mirrors.edge.kernel.org/pub/linux/kernel/v5.x/linux-5.1.1.tar.gz
Resolving mirrors.edge.kernel.org (mirrors.edge.kernel.org)... 147.75.95.133, 2604:1380:3000:1500::1
Connecting to mirrors.edge.kernel.org (mirrors.edge.kernel.org)|147.75.95.133|:443... connected.
WARNING: The certificate of ‘mirrors.edge.kernel.org’ is not trusted.
WARNING: The certificate of ‘mirrors.edge.kernel.org’ is not yet activated.
The certificate has not yet been activated
HTTP request sent, awaiting response... 200 OK
Length: 164113671 (157M) [application/x-gzip]
Saving to: ‘linux-5.1.1.tar.gz’
...

11. Versão e ajuda do Wget

Com as opções --version e --help você pode visualizar a versão e a ajuda conforme necessário.

wget --version
wget --help

Neste artigo, abordamos os comandos wgetdo Linux com opções para tarefas administrativas diárias. Faça man wget se quiser saber mais sobre isso? Por favor, compartilhe através de nossa caixa de comentários ou se tivermos perdido alguma coisa, avise-nos.