DEV Community

Cover image for [pt-BR] Troubleshooting Linux - Comandos e ações
Marcos Vilela
Marcos Vilela

Posted on

[pt-BR] Troubleshooting Linux - Comandos e ações

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]
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

Procurando Arquivos por Nome

Quando preciso localizar rapidamente um arquivo específico, o comando find me ajuda bastante:

sudo find / -name <nome-do-arquivo>
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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}'
Enter fullscreen mode Exit fullscreen mode

Finalizando Processos

Para encerrar processos problemáticos, o pkill é direto e eficiente:

sudo pkill -9 'nome do processo/command'
Enter fullscreen mode Exit fullscreen mode

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!

Top comments (0)