[pt-BR] Troubleshooting Linux - Comandos e ações
Marcos Vilela
Posted on November 29, 2024
No meu dia a dia como profissional de SRE/DevOps, o troubleshooting em sistemas Linux é uma atividade constante. Muitas vezes, preciso agir rápido para identificar problemas via CLI, analisá-los e aplicar soluções. Neste artigo, compartilho os comandos que utilizo regularmente para manipular arquivos, filtrar logs, monitorar recursos e gerar relatórios.
Preparação e Manipulação de Arquivos
Eliminando Linhas em Branco
Quando trabalho com arquivos de log ou dados brutos, linhas em branco podem atrapalhar a análise. Uso o comando abaixo para removê-las:
sed -i '/^$/d' [arquivo]
Contando o Total de Linhas
Após processar arquivos, costumo validar se o total de linhas corresponde ao esperado:
echo -n "Total de linhas: "; cat [arquivo] | wc -l
Filtrando Ocorrências
Para encontrar registros específicos em um arquivo, o grep
é meu aliado. Uso este comando para buscar um termo e navegar facilmente com o less
:
grep [termo] [arquivo] | less
Contando Ocorrências de um Termo
Em alguns casos, preciso saber quantas vezes um termo aparece no arquivo, o que ajuda a medir a frequência de erros ou eventos:
grep [termo] [arquivo] | wc -l
Filtrando Por Data
Quando analiso logs, muitas vezes preciso focar em um dia específico. Por exemplo, para extrair registros do dia 29 de janeiro em um log do Apache/NGINX, uso:
grep 'Jan 29' arquivo.log > arquivo.log.1
Monitoramento Contínuo
Monitorando a Disponibilidade de URLs
Para checar continuamente se um serviço está respondendo corretamente, costumo usar watch combinado com curl:
watch -n 1 curl -Is https://seusite.dev
Verificar cabeçalhos HTTP
Para checar os cabeçalhos HTTP de uma URL, uso o comando curl
com a opção -Il
:
curl -Il https://seusite.dev
Manutenção do Sistema
Limpando o Sistema
Para evitar problemas de espaço em disco, faço limpezas regulares nos pacotes do APT:
sudo apt autoclean # Remove pacotes parcialmente baixados
sudo apt clean # Limpa o cache do APT
sudo apt autoremove # Remove pacotes não utilizados
Procurando Arquivos por Nome
Quando preciso localizar rapidamente um arquivo específico, o comando find
me ajuda bastante:
sudo find / -name <nome-do-arquivo>
Análise de Logs com GoAccess
Instalando o GoAccess
O GoAccess é uma ferramenta poderosa para analisar logs de servidores web. Para instalá-lo no Debian, uso o comando:
sudo apt install goaccess
Filtrando Logs por Hora ou Minuto
Quando trabalho com logs, muitas vezes preciso filtrar informações antes de gerar relatórios. Uso os seguintes passos:
Por exemplo, para analisar apenas os registros das 06:00 às 06:59, faço assim:
cat access.log | grep '\[26/Jun/2024:06:[0-5][0-9]:[0-5][0-9]' > access_filtered.log
Se quero restringir a análise a minutos específicos, utilizo:
cat access.log | grep '\[26/Jun/2024:06:0[0-9]:[0-5][0-9]' > access_filtered.log
Gerando Relatórios HTML
Com o log filtrado, gero relatórios detalhados usando o GoAccess, o que facilita visualizar as métricas:
goaccess access_filtered.log -o report.html --log-format=COMBINED
Gerenciamento de Processos
Encontrando Processos Específicos
Quando preciso identificar processos relacionados a um caminho ou padrão, combino ps
, grep
e awk
:
ps aux | grep 'nome do processo/command' | grep -v grep | awk '{print $2}'
Finalizando Processos
Para encerrar processos problemáticos, o pkill
é direto e eficiente:
sudo pkill -9 'nome do processo/command'
Conclusão
Esses são exemplos de comandos parte essencial do meu fluxo de troubleshooting no Linux. Eles me ajudam a identificar problemas, analisar logs e otimizar o sistema de forma rápida e precisa.
Se você usa outros comandos ou tem dicas para melhorar essas práticas, deixe seu comentário. Vamos trocar ideias e aprender juntos!
Posted on November 29, 2024
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.