Introdução
Bem-vindo a este laboratório para iniciantes sobre download não interativo no Linux. A capacidade de baixar arquivos eficientemente a partir da linha de comando é uma habilidade essencial para qualquer usuário Linux ou administrador de sistema.
Neste laboratório, você aprenderá a usar o comando wget, um utilitário poderoso que permite baixar arquivos da internet sem intervenção manual. Esta ferramenta é particularmente útil quando você precisa obter vários arquivos, baixar em segundo plano ou automatizar tarefas de download em scripts.
Ao final deste laboratório, você entenderá como usar o wget para baixar arquivos individuais, renomear downloads e baixar vários arquivos de uma lista - tudo através da linha de comando, sem interfaces gráficas ou prompts interativos.
Configurando o Ambiente e Download Básico
Neste primeiro passo, criaremos um diretório de trabalho e aprenderemos a baixar um único arquivo usando o comando wget.
Criando um Diretório de Trabalho
Vamos começar criando um diretório onde armazenaremos todos os nossos arquivos baixados. Isso ajuda a manter nossos arquivos organizados em um único local.
Navegue até o diretório do projeto e crie um novo diretório chamado download_resources:
cd ~/project
mkdir download_resources
Entendendo o Comando wget
O comando wget é um utilitário para download não interativo de arquivos da web. Sua sintaxe básica é:
wget [opções] [URL]
Seu Primeiro Download
Agora, vamos usar wget para baixar um arquivo. Baixaremos um pacote de distribuição Python como um arquivo de teste:
cd ~/project/download_resources
wget https://www.python.org/ftp/python/3.6.1/Python-3.6.1.tgz
Quando você executar este comando, deverá ver uma saída semelhante a esta:
--2024-01-10 10:14:51-- https://www.python.org/ftp/python/3.6.1/Python-3.6.1.tgz
Resolving www.python.org (www.python.org)... 151.101.76.223, 2a04:4e42:12::223
Connecting to www.python.org (www.python.org)|151.101.76.223|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 22540566 (21M) [application/octet-stream]
Saving to: 'Python-3.6.1.tgz'
Python-3.6.1.tgz 100%[=============================================================>] 21.50M 26.8MB/s in 0.8s
2024-01-10 10:14:52 (26.8 MB/s) - 'Python-3.6.1.tgz' saved [22540566/22540566]
Esta saída mostra:
- A URL que está sendo acessada
- O endereço IP do servidor
- A resposta HTTP (200 OK significa sucesso)
- O tamanho do arquivo (aproximadamente 21MB)
- O progresso do download
- A velocidade e o tempo de download
- Confirmação de que o arquivo foi salvo com seu nome original
Vamos verificar se o arquivo foi baixado corretamente:
ls -lh
Você deve ver o arquivo Python-3.6.1.tgz no diretório com seu tamanho correspondente.
Download com Nomes de Arquivos Personalizados
Nesta etapa, exploraremos como baixar um arquivo e salvá-lo com um nome de arquivo personalizado, em vez de usar o nome padrão da URL.
Usando a Opção -O
A opção -O (letra O maiúscula, não zero) permite que você especifique o nome do arquivo de saída. Isso é útil quando:
- Você deseja um nome de arquivo mais descritivo
- O nome de arquivo padrão da URL é muito complexo
- Você está baixando várias versões do mesmo recurso
Vamos tentar baixar outro pacote Python, mas desta vez vamos salvá-lo com um nome personalizado:
cd ~/project/download_resources
wget -O CustomPython.tgz https://www.python.org/ftp/python/3.6.2/Python-3.6.2.tgz
Neste comando:
-O CustomPython.tgzdiz aowgetpara salvar o arquivo comoCustomPython.tgz- O arquivo será baixado da URL especificada, mas salvo com nosso nome personalizado
A saída será semelhante à anterior, mas observe que a linha "Saving to" agora mostra nosso nome de arquivo personalizado:
--2024-01-10 10:20:51-- https://www.python.org/ftp/python/3.6.2/Python-3.6.2.tgz
Resolving www.python.org (www.python.org)... 151.101.76.223, 2a04:4e42:12::223
Connecting to www.python.org (www.python.org)|151.101.76.223|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 22676538 (22M) [application/octet-stream]
Saving to: 'CustomPython.tgz'
CustomPython.tgz 100%[=============================================================>] 21.63M 25.9MB/s in 0.8s
2024-01-10 10:20:52 (25.9 MB/s) - 'CustomPython.tgz' saved [22676538/22676538]
Vamos verificar se nosso arquivo foi baixado com o nome personalizado:
ls -lh
Você deve agora ver o arquivo Python-3.6.1.tgz original e seu novo arquivo CustomPython.tgz no diretório.
Opções Úteis Adicionais
Enquanto estamos aprendendo sobre as opções do wget, aqui estão mais algumas opções úteis:
-q(quiet - silencioso): Suprime a saída, útil para scripts-c(continue - continuar): Retoma um arquivo parcialmente baixado--limit-rate=1m: Limita a velocidade de download (por exemplo, a 1 megabyte por segundo)
Por exemplo, para baixar silenciosamente com um nome personalizado:
wget -q -O PythonQuiet.tgz https://www.python.org/ftp/python/3.6.3/Python-3.6.3.tgz
Este comando não mostrará nenhuma saída, mas o arquivo será baixado. Você pode verificar com:
ls -lh
Você também deve ver o arquivo PythonQuiet.tgz em seu diretório.
Download de Múltiplos Arquivos a Partir de uma Lista
Em cenários do mundo real, você geralmente precisa baixar vários arquivos. Digitar cada comando wget manualmente seria ineficiente. Felizmente, o wget pode baixar vários arquivos de uma lista, o que é perfeito para automação.
Criando um Arquivo com URLs
Primeiro, vamos criar um arquivo de texto contendo as URLs dos arquivos que queremos baixar:
cd ~/project/download_resources
echo "https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tgz" > download_list.txt
echo "https://www.python.org/ftp/python/3.7.1/Python-3.7.1.tgz" >> download_list.txt
echo "https://www.python.org/ftp/python/3.7.2/Python-3.7.2.tgz" >> download_list.txt
Nestes comandos:
- O primeiro comando
echocria um novo arquivo chamadodownload_list.txte adiciona a primeira URL - Os comandos
echosubsequentes anexam URLs adicionais ao arquivo usando>>(redirecionamento duplo)
Vamos verificar o conteúdo do nosso arquivo para garantir que está correto:
cat download_list.txt
Você deve ver três URLs, cada uma em sua própria linha:
https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tgz
https://www.python.org/ftp/python/3.7.1/Python-3.7.1.tgz
https://www.python.org/ftp/python/3.7.2/Python-3.7.2.tgz
Usando wget com um Arquivo de Entrada
Agora podemos usar a opção -i com wget para ler URLs do nosso arquivo e baixar todos os arquivos:
wget -i download_list.txt
Este comando diz ao wget para ler as URLs de download_list.txt e baixar cada arquivo em sequência. Você verá a saída para cada download, semelhante a quando você baixou um único arquivo:
--2024-01-10 10:30:51-- https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tgz
Resolving www.python.org (www.python.org)... 151.101.76.223, 2a04:4e42:12::223
Connecting to www.python.org (www.python.org)|151.101.76.223|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 22808518 (22M) [application/octet-stream]
Saving to: 'Python-3.7.0.tgz'
Python-3.7.0.tgz 100%[=============================================================>] 21.75M 25.9MB/s in 0.8s
2024-01-10 10:30:52 (25.9 MB/s) - 'Python-3.7.0.tgz' saved [22808518/22808518]
--2024-01-10 10:30:52-- https://www.python.org/ftp/python/3.7.1/Python-3.7.1.tgz
...
Verificando os Arquivos Baixados
Após a conclusão dos downloads, vamos verificar se todos os arquivos foram baixados corretamente:
ls -lh Python-3.7.*
Você deve ver os três arquivos Python 3.7.x que baixamos da lista:
-rw-r--r-- 1 labex labex 22M Jan 10 10:30 Python-3.7.0.tgz
-rw-r--r-- 1 labex labex 22M Jan 10 10:30 Python-3.7.1.tgz
-rw-r--r-- 1 labex labex 22M Jan 10 10:31 Python-3.7.2.tgz
Criando um Script de Download em Lote
Para uso futuro, vamos criar um script de shell simples que pode baixar arquivos de uma lista. Isso demonstra como o wget pode ser usado em automação:
cd ~/project/download_resources
nano batch_download.sh
Insira o seguinte conteúdo no arquivo:
#!/bin/bash
## A simple script to download files from a list
if [ -f "$1" ]; then
echo "Downloading files from list: $1"
wget -i "$1"
else
echo "Error: File $1 not found"
exit 1
fi
Salve o arquivo pressionando Ctrl+O, depois Enter e saia com Ctrl+X.
Torne o script executável:
chmod +x batch_download.sh
Agora você pode usar este script para baixar arquivos de qualquer lista no futuro:
./batch_download.sh download_list.txt
Este comando faria a mesma coisa que nosso comando wget -i download_list.txt anterior, mas está encapsulado em um script que você pode reutilizar.
Resumo
Neste laboratório, você aprendeu a usar o comando wget para download não interativo no Linux. Agora você tem as habilidades para:
- Baixar arquivos individuais usando comandos
wgetbásicos - Salvar arquivos baixados com nomes personalizados usando a opção
-O - Criar uma lista de URLs e baixar vários arquivos de uma vez usando a opção
-i - Criar scripts de automação simples para download em lote
Essas habilidades são valiosas para administradores de sistemas, desenvolvedores e qualquer usuário Linux que precise baixar arquivos de forma eficiente da linha de comando. O download não interativo é particularmente útil para automação, gerenciamento de servidores remotos e situações em que interfaces gráficas não estão disponíveis.
Alguns recursos adicionais do wget que você pode explorar por conta própria incluem:
- Download recursivo com
-rpara espelhamento de sites - Download em segundo plano com
-bpara downloads de longa duração - Usando autenticação com
--usere--passwordpara recursos protegidos - Definir timeouts, tentativas e outros parâmetros de conexão
Com esses recursos, você pode lidar com uma ampla gama de cenários de download de forma eficiente a partir da linha de comando Linux.



