Aplicações Práticas de Pipelines Linux
Nesta etapa final, você explorará algumas aplicações do mundo real de pipelines Linux, analisando arquivos de log, processando arquivos de dados e resolvendo tarefas comuns de administração de sistemas.
Analisando Arquivos de Log
Administradores de sistemas frequentemente precisam extrair informações úteis de arquivos de log. Vamos usar pipelines para analisar o arquivo server_log.txt:
- Contar ocorrências de cada nível de log (INFO, WARNING, ERROR):
cd ~/project
cat server_log.txt | grep -o "INFO\|WARNING\|ERROR" | sort | uniq -c
Saída:
4 INFO
3 ERROR
2 WARNING
- Extrair todos os timestamps e níveis de log:
cat server_log.txt | grep -o "\[[0-9-]* [0-9:]*\] [A-Z]*" | head -5
Saída:
[2023-05-10 08:45:22] INFO
[2023-05-10 09:12:35] ERROR
[2023-05-10 09:14:01] INFO
[2023-05-10 09:14:10] INFO
[2023-05-10 09:30:45] WARNING
Processando Dados CSV
Vamos usar pipelines para analisar o arquivo sales.csv:
- Extrair e contar produtos únicos vendidos:
cat sales.csv | tail -n +2 | cut -d',' -f2 | sort | uniq -c
O comando tail -n +2 ignora a linha de cabeçalho do arquivo CSV.
Saída:
2 Keyboard
2 Laptop
2 Monitor
2 Mouse
1 Printer
- Calcular o número total de unidades vendidas:
cat sales.csv | tail -n +2 | cut -d',' -f3 | paste -sd+ | bc
Saída:
113
Este pipeline extrai a terceira coluna (Unidades), combina todos os valores com sinais "+", e então usa a calculadora bc para computar a soma.
Tarefas de Monitoramento do Sistema
Pipelines Linux também são úteis para monitoramento e tarefas de administração do sistema:
- Listar os 5 principais processos que consomem mais memória:
ps aux | sort -k 4 -r | head -6
Este comando lista os processos ordenados pela 4ª coluna (uso de memória) em ordem inversa e mostra as 6 primeiras linhas (incluindo o cabeçalho).
- Encontrar todos os arquivos maiores que 10MB e ordená-los por tamanho:
cd ..
find . -type f -size +10M -exec ls -lh {} \; | sort -k 5 -h
Este comando mostrará nossos arquivos de teste grandes ordenados por tamanho. A saída deve ser semelhante a:
-rw-r--r-- 1 labex labex 12M May 10 12:00 ./large_file3.dat
-rw-r--r-- 1 labex labex 15M May 10 12:00 ./large_file2.dat
-rw-r--r-- 1 labex labex 20M May 10 12:00 ./large_file1.dat
Este exemplo demonstra como encontrar e ordenar arquivos por tamanho. Os arquivos foram criados durante a configuração especificamente para mostrar como a filtragem por tamanho de arquivo funciona no Linux.
Esses exemplos demonstram como os pipelines Linux podem ser usados para resolver problemas do mundo real de forma eficiente. Ao combinar comandos simples, você pode criar fluxos de trabalho de processamento de dados poderosos sem escrever scripts ou programas complexos.