Skip to content

rebecaalvareztech/Linux-Script-Processamento-Logs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🧩 Script Bash para Processamento e Análise de Logs

Bash Script

📘 Sobre o Projeto

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.


⚙️ Funcionalidades Implementadas

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: sed com 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ços while
  • 📦 Compactação e organização: tar, gzip, diretórios temporários
  • Automação de execução: agendamento com cron

🧾 Funcionamento do Script (monitoramento-logs.sh)

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.


📜 Etapas do Processamento

  1. Define diretórios principais:
    LOG_DIR, ARQUIVO_DIR, TEMP_DIR — locais dos logs originais, processados e temporários.

  2. Cria diretórios automaticamente:

    mkdir -p $ARQUIVO_DIR $TEMP_DIR
    
  3. Localiza arquivos .log:

    find $LOG_DIR -name "*.log"
    
  4. Filtra e anonimiza informações sensíveis:

    • grep para extrair linhas com ERROR

    • sed para substituir senhas, tokens e cartões por REDACTED

  5. Remove duplicatas e ordena as entradas:

    sort arquivo.log | uniq > arquivo_limpo.log
    
  6. Gera estatísticas por arquivo:

    wc -l -w arquivo.log > log_stats_<data>.txt
    
  7. Combina logs por origem:

    Junta os resultados de frontend e backend em logs_combinados_<data>.log.

  8. Compacta e organiza os resultados:

    tar -czvf logs_<data>.tar.gz *.log *.txt
    
  9. Limpa arquivos temporários:

    rm -rf $TEMP_DIR/*
    

🧠 Conhecimentos Aplicados

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 tar e gzip

  • Estruturas condicionais e loops em Bash

  • Contagem de palavras com wc

  • Edição de texto com vim e nano


📁 Estrutura de Saída

  • logs_combinados_.log → logs unificados

  • log_stats_.txt → estatísticas de cada arquivo

  • logs_.tar.gz → pacote compactado final


🚀 Execução

Dê permissão de execução e rode o script:

  chmod +x monitoramento-logs.sh
  ./monitoramento-logs.sh

🏁 Resultado Final

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.

About

Projeto desenvolvido para praticar Shell Script no Linux, criando um script Bash para processar arquivos de log. O aprendizado envolve comandos de busca e filtragem, manipulação de dados, permissões, compactação e agendamento de tarefas automatizadas com o cron.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages