wget¶
O que é¶
Cliente de download não interativo para HTTP/HTTPS/FTP, focado em transferência de arquivos, retomada de download, espelhamento e execução em scripts/cron.
Para que serve¶
- Validar disponibilidade de artefatos (binários, backups, pacotes) expostos por HTTP.
- Baixar arquivos grandes com retomada automática (
-c). - Testar autenticação básica e acesso a repositórios privados.
- Fazer espelhamento de conteúdo estático para análise offline.
- Verificar headers e status sem baixar conteúdo completo (
--spider).
Quando usar¶
- Pipeline CI falha ao baixar artefato (timeout/404/403).
- Download interrompido em links instáveis (retomada necessária).
- Validação de mirror/repositório antes de apontar produção.
- Necessidade de baixar recursivamente documentação/site estático para auditoria.
- Inspeção rápida de endpoint de arquivo sem consumir banda desnecessária.
Exemplos de uso¶
# 1) Checar status/headers sem baixar arquivo
wget --spider -S https://downloads.exemplo.com/app.tar.gz
# 2) Baixar com retomada (ideal para arquivos grandes)
wget -c https://downloads.exemplo.com/app.tar.gz
# 3) Definir timeout e tentativas em ambiente instável
wget --timeout=5 --tries=3 https://downloads.exemplo.com/app.tar.gz
# 4) Salvar com nome específico
wget -O app-prod.tar.gz https://downloads.exemplo.com/releases/latest.tar.gz
# 5) Espelhamento básico de conteúdo estático
wget --mirror --convert-links --adjust-extension --page-requisites --no-parent https://docs.exemplo.com/
Exemplo de saída¶
$ wget --spider -S https://downloads.exemplo.com/app.tar.gz
Spider mode enabled. Check if remote file exists.
--2026-03-15 10:20:41-- https://downloads.exemplo.com/app.tar.gz
Resolving downloads.exemplo.com... 10.30.40.50
Connecting to downloads.exemplo.com|10.30.40.50|:443... connected.
HTTP request sent, awaiting response...
HTTP/1.1 200 OK
Content-Type: application/gzip
Content-Length: 184532992
Length: 184532992 (176M) [application/gzip]
Remote file exists.
Leitura rápida:
- Falha em
Resolving...: DNS. - Falha em
Connecting...: rede/porta/firewall. 403/401: autenticação/autorização.404: URL ou versão de artefato inválida.
Dicas de troubleshooting¶
- Use
--server-response/-Spara confirmar status real retornado pelo servidor. - Em erros intermitentes, combine
--tries,--waitretrye--timeout. - Se houver TLS problemático em legado, valide certificado em vez de desabilitar verificação.
- Em CI/CD, capture logs completos do
wgetpara correlação com horário do incidente. - Ao baixar de endpoints protegidos, valide credenciais e escopo antes de culpar rede.
Flags importantes¶
--spider: testa existência/acesso sem baixar.-S/--server-response: mostra headers e status.-c: retoma download interrompido.-O <arquivo>: define nome do arquivo de saída.--timeout=<seg>: timeout de rede.--tries=<n>: número de tentativas.--waitretry=<seg>: espera progressiva entre retries.--user/--password: autenticação básica.--no-check-certificate: ignora validação TLS (somente diagnóstico controlado).--mirror: espelhamento recursivo.
Boas práticas¶
- Sempre valide checksum (
sha256sum) após download de artefatos críticos. - Em automação, trate códigos de saída do
wgetpara diferenciar erro de rede vs HTTP. - Evite salvar artefatos em caminhos temporários sem limpeza/controle de versão.
- Para downloads sensíveis, registre origem, hash e horário no pipeline.
- Prefira URLs versionadas em produção para evitar “latest” quebrando deploy.
Referências¶
- Manual:
man wget - GNU Wget docs: https://www.gnu.org/software/wget/manual/