Este projeto foi desenvolvido a partir do curso "Linux: Criando Scripts para Processamento de Arquivos de Logs", com o objetivo de demonstrar automatização de tarefas no terminal Linux por meio de scripts Bash.
O script principal realiza o processamento, filtragem, anonimização e compactação de arquivos de log de uma aplicação, aplicando conceitos de shell scripting, manipulação de texto e automação de processos.
Como o processamento de logs envolve comandos repetitivos no terminal, o uso de scripts Bash torna essa tarefa mais rápida e automatizada. Assim, em vez de executar manualmente cada comando, o script fará a leitura e análise automática dos logs, facilitando o monitoramento da saúde e do desempenho das aplicações.
Para realizar este projeto, é necessário utilizar um ambiente Linux. Foi utilizado o WSL 2 (Windows Subsystem for Linux) no Windows, que permite executar distribuições Linux dentro do próprio sistema operacional.
O projeto coloca em prática os principais comandos e estruturas estudados, incluindo:
- 🔐 Gerenciamento de permissões e usuários:
chmod,chown - 🔍 Busca e filtragem de dados:
find,grep,awk,cut,sort,uniq - ✂️ Substituições e anonimização:
sedcom expressões regulares - 📊 Análise e contagem de dados:
wc, redirecionamento de saídas, variáveis dinâmicas - 🔁 Estruturas de controle:
if,elif,else, laçoswhile - 📦 Compactação e organização:
tar,gzip, diretórios temporários - ⏰ Automação de execução: agendamento com
cron
O script realiza o processamento completo dos logs gerados por duas aplicações simuladas — frontend e backend — localizadas no diretório myapp/logs.
Os arquivos de log utilizados neste repositório são:
-
myapp-backend.log -
myapp-frontend.log
Cada arquivo contém registros simulados de acessos e eventos das respectivas aplicações, servindo como base para o desenvolvimento e testes do script de processamento.
-
Define diretórios principais:
LOG_DIR,ARQUIVO_DIR,TEMP_DIR— locais dos logs originais, processados e temporários. -
Cria diretórios automaticamente:
mkdir -p $ARQUIVO_DIR $TEMP_DIR
-
Localiza arquivos .log:
find $LOG_DIR -name "*.log"
-
Filtra e anonimiza informações sensíveis:
-
grep para extrair linhas com ERROR
-
sed para substituir senhas, tokens e cartões por REDACTED
-
-
Remove duplicatas e ordena as entradas:
sort arquivo.log | uniq > arquivo_limpo.log
-
Gera estatísticas por arquivo:
wc -l -w arquivo.log > log_stats_<data>.txt
-
Combina logs por origem:
Junta os resultados de
frontendebackendemlogs_combinados_<data>.log. -
Compacta e organiza os resultados:
tar -czvf logs_<data>.tar.gz *.log *.txt
-
Limpa arquivos temporários:
rm -rf $TEMP_DIR/*
Durante o desenvolvimento, foram consolidados os seguintes conceitos:
-
Manipulação de arquivos com redirecionamento de entrada e saída (
>,>>,<) -
Criação de variáveis dinâmicas e substituição de comandos (
$(...)) -
Tratamento de strings e espaços com IFS e read
-
Automação de tarefas com
cron -
Compactação automatizada com
taregzip -
Estruturas
condicionaiseloopsem Bash -
Contagem de palavras com
wc -
Edição de texto com
vimenano
-
logs_combinados_.log → logs unificados
-
log_stats_.txt → estatísticas de cada arquivo
-
logs_.tar.gz → pacote compactado final
Dê permissão de execução e rode o script:
chmod +x monitoramento-logs.sh
./monitoramento-logs.sh
O projeto demonstra domínio prático de Bash e automação Linux, aplicando boas práticas de:
-
Organização de scripts;
-
Manipulação de arquivos e logs;
-
Tratamento de dados sensíveis;
-
Execução automatizada de rotinas.
É um exemplo claro de como scripts bem estruturados podem otimizar tarefas complexas e repetitivas em ambientes de desenvolvimento e produção.
