DevOps iniciante

10 comandos do terminal Linux úteis para todos DevOps, mas não tão conhecidos

Introdução

No dia a dia de um profissional de DevOps, a eficiência e a agilidade são fundamentais para garantir um ambiente de TI confiável e de alto desempenho. Em um cenário em constante evolução, enfrentamos desafios que requerem habilidades avançadas de análise e solução de problemas. Nesse contexto, o conhecimento de comandos e scripts menos conhecidos, porém altamente úteis, pode fazer toda a diferença.

Ao lidar com situações de troubleshooting, esses comandos do terminal Linux menos conhecidos tornam-se ferramentas poderosas. O monitoramento do consumo de recursos de um processo específico, por exemplo, permite identificar gargalos de desempenho e otimizar o uso de recursos do sistema. Isso é especialmente valioso em ambientes de produção, onde cada milissegundo conta.

A análise da latência de uma URL específica é outro caso de uso importante. Com esse comando, podemos identificar possíveis problemas de conectividade ou instabilidades na rede. Essa informação é crucial para garantir a disponibilidade e a confiabilidade de serviços essenciais.

Outro cenário crítico é o monitoramento em tempo real do tráfego de rede. Com comandos como “tcpdump”, podemos capturar e analisar pacotes em tempo real, identificando possíveis anomalias ou ataques à rede. Essa capacidade é vital para a segurança e a proteção de dados em um ambiente cada vez mais exposto a ameaças.

Além disso, a análise do desempenho do disco e da atividade de I/O de processos específicos oferece insights valiosos sobre o desempenho do sistema. Comandos como “iostat” e “iotop” permitem identificar gargalos de I/O, otimizar a utilização do armazenamento e melhorar a eficiência operacional.

No contexto de desenvolvimento e implantação, esses comandos também são úteis. Por exemplo, a conversão de arquivos JSON para CSV pode facilitar a manipulação e análise de dados estruturados em várias ferramentas. A listagem de dependências de pacotes Python com o “pipdeptree” auxilia na gestão de versões e na solução de conflitos entre dependências.


Comandos do terminal Linux

Comandos do terminal Linux

1. Obter o Endereço IP Público

curl ifconfig.me

Esse comando utiliza o serviço ifconfig.me para recuperar o endereço IP público do servidor(comando ip linux terminal). Isso é útil em cenários em que você precisa fornecer o endereço IP público para fins de configuração ou acesso remoto. O comando é simples e direto, não requer configuração adicional e retorna o endereço IP em formato de texto. Tem a mesma finalidade do famoso site meuip.com.br, mas via linha de comando.

2. Monitorar Consumo de Recursos

top -p <PID> -b -n 1

Esse comando permite monitorar o consumo de recursos (como CPU e memória) de um processo específico por meio do seu PID. Ele é útil para identificar gargalos de desempenho em processos individuais e otimizar o uso de recursos do sistema. A opção “-b” garante a execução em segundo plano e a opção “-n 1” especifica o número de iterações.

3. Analisar Latência de URL

ping -c 5 <URL>

O comando “ping” é comumente usado para verificar a conectividade de rede, mas sua opção menos conhecida “-c” permite especificar o número de pacotes a serem enviados. Isso é útil para analisar a latência e a perda de pacotes em uma URL específica, ajudando a diagnosticar problemas de conectividade e a verificar a estabilidade da rede, sendo um dos comandos do terminal Linux mais utilizados em momentos de troubleshooting de problemas de rede.

4. Verificar Tráfego de Rede em Tempo Real

sudo tcpdump -i <interface-de-rede>

O comando “tcpdump” é uma ferramenta poderosa para analisar o tráfego de rede. Com a opção “-i” seguida pelo nome da interface de rede, você pode monitorar e capturar pacotes em tempo real. Isso é útil para depuração de rede, análise de tráfego e detecção de problemas de segurança. Lembre-se de executar o comando com privilégios de superusuário (sudo) para acessar todas as interfaces.

5. Analisar Desempenho do Disco

iostat -x 1

O comando “iostat” é usado para monitorar o desempenho do sistema, incluindo a utilização do disco. Com a opção “-x” é possível exibir estatísticas detalhadas sobre o uso de I/O. O intervalo de 1 segundo (opção “1”) fornece atualizações frequentes, permitindo uma análise em tempo real do desempenho do disco. Isso é útil para identificar gargalos de E/S e ajustar a configuração de armazenamento.

6. Monitorar Atividade de I/O de Processos

iotop -p <PID>

O comando “iotop” exibe informações sobre a atividade de I/O dos processos em execução no sistema. Ao fornecer o PID de um processo específico, você pode monitorar sua atividade de leitura e gravação em tempo real. Isso é útil para identificar processos que estão realizando operações intensivas de I/O e otimizar seu desempenho.

7. Remover Contêineres Docker Parados

docker container prune -f

O comando “docker container prune” permite remover todos os contêineres Docker que estão parados. Isso é útil para limpar o ambiente Docker e liberar recursos de armazenamento. A opção “-f” indica que a remoção deve ser feita sem a necessidade de confirmação adicional. Também pode ser usado em conjunto com o docker system prune.

8. Limpar Arquivos Antigos

find /caminho/do/diretorio -type f -mtime +X -exec rm {} \;

Este comando é um comando do terminal Linux bem conhecido, mas as vezes é pouco explorado, apesar do seu grande potencial. Esse script usa o comando “find” para localizar arquivos em um diretório com base no tempo de modificação. A opção “-type f” especifica que apenas arquivos regulares devem ser considerados. A opção “-mtime +X” define o limite de idade em dias. Ao usar o argumento “-exec rm {} ;”, os arquivos encontrados são removidos. Isso é útil para limpar diretórios de logs antigos ou arquivos temporários.

9. Converter JSON para CSV

jq -r 'map(values) | @csv' < arquivo.json > arquivo.csv

O comando “jq” é uma ferramenta de linha de comando para processar JSON. Com essa linha de script, é possível converter um arquivo JSON para o formato CSV. O comando “map(values)” extrai os valores dos campos JSON, e a expressão “@csv” formata-os como uma linha CSV. Essa conversão é útil quando você precisa manipular e analisar dados JSON em ferramentas que suportam o formato CSV.

10. Listar Dependências de Pacotes Python

pipdeptree <nome-do-pacote>

O comando “pipdeptree” exibe uma árvore de dependências de pacotes Python instalados em um ambiente virtual ou sistema. Isso é útil para visualizar a hierarquia de dependências e suas versões. Com essa informação, é possível solucionar problemas de compatibilidade, gerenciar versões de pacotes e verificar se há dependências desnecessárias ou conflitantes.


Conclusão

Dominar esses comandos do terminal Linux menos conhecidos pode transformar a maneira como profissionais de DevOps realizam suas tarefas diárias. Com eles, é possível otimizar o monitoramento, solucionar problemas e gerenciar recursos de forma mais eficaz, aumentando a produtividade e a eficiência operacional.


DevOps iniciante

FAQs

1. Como descobrir o endereço IP público do meu servidor?

Utilize o comando curl ifconfig.me para obter o endereço IP público de maneira simples e rápida.

2. Qual comando uso para monitorar recursos de um processo específico?

O comando top -p <PID> -b -n 1 permite monitorar CPU e memória de um processo específico.

3. Como analisar a latência de uma URL?

O comando ping -c 5 <URL> ajuda a verificar a conectividade e latência de uma URL específica.

4. Qual comando utilizo para analisar o tráfego de rede em tempo real?

Use sudo tcpdump -i <interface-de-rede> para capturar e analisar pacotes de rede em tempo real.

5. Como converter arquivos JSON para CSV?

O comando jq -r 'map(values) | @csv' < arquivo.json > arquivo.csv converte JSON para CSV, facilitando a análise de dados.

Material Extra

Um pouco mais

Gostou do artigo? Não deixe de se inscrever na nossa newsletter para receber as últimas novidades e dicas sobre DevOps diretamente no seu e-mail, acesse a nossa home e se inscreva no bloco “Receba as notícias por email” . Além disso, leia nossos outros posts sobre Linux, para continuar aprimorando suas habilidades em DevOps/SRE.

Fernando Müller Junior
Fernando Müller Junior

Eu sou o Fernando Müller, um Tech Lead SRE com 16 anos de experiência em TI, atualmente eu trabalho na Appmax, uma fintech localizada no Brasil. Apaixonado por trabalhar com arquiteturas e aplicações Cloud Native, ferramentas Open Source e tudo que existe no mundo SRE, sempre procurando se desenvolver e aprender constantemente(Lifelong learning), atuando em projetos inovadores!

Artigos: 28

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *