Comandos Fundamentais para Administração de Sistemas Linux

Comando tree

O comando tree no Linux exibe a estrutura de diretórios em formato de árvore, listando todos os arquivos e subdiretórios.

Sintaxe: tree [-opções] [diretório...]

Parâmetros comuns:

  • -a: mostra todos os arquivos e diretórios, incluindo ocultos.
  • -C: adiciona cores para diferenciar tipos de arquivos.
  • -D: exibe datas de modificação.
  • -L nível: limita a profundidade da exibição.
  • -f: exibe caminhos relativos completos.

Exemplo de uso: Para listar o diretório /var/log com cores e datas de modificação:

tree -C -D /var/log

Este comando mostra a estrutura com formatação colorida e informações temporais.

Encontrar os arquivos que mais ocupam espaço

Utilize combinações de comandos para identificar arquivos grandes no sistema.

Comandos envolvidos:

  • du: calcula o uso de espaço de arquivos ou diretórios.
  • sort: ordena linhas de saída.
  • head: exibe as primeiras linhas de uma saída.

Exemplo prático: Listar os 5 maiores arquivos no diretório atual:

du -ah . | sort -n -r | head -5

Para ver o tamanho de subdiretórios imediatos:

du -h --max-depth=1 /home

Codificação e decodificação base64

O utilitário base64 converte dados para o formato base64, comum para transferência de dados.

Codificação: A partir da entrada padrão ou arquivos.

echo "texto_confidencial" | base64

Decodificação:

echo "dGV4dG9fY29uZmlkZW5jaWFs" | base64 --decode

Informações sobre a CPU

Consultar detalhes da CPU via arquivos de sistema.

Número de processadores físicos:

grep 'physical id' /proc/cpuinfo | sort -u | wc -l

Núcleos por processador:

grep 'cpu cores' /proc/cpuinfo | uniq

Combine para calcular o total de núcleos.

Remoção massiva de arquivos

Para excluir muitos arquivos, use find com xargs para evitar limites de argumentos.

find /tmp -name "padrão_*.tmp" -print0 | xargs -0 rm -f

Este método lida com nomes de arquivo complexos de forma segura.

Extração de logs por intervalo de tempo

Utilize sed para recortar seções de logs baseado em timestamps.

sed -n '/2023-11-01 12:00/, /2023-11-01 13:30/p' /var/log/app.log > /tmp/recorte.log

Ajuste os timestamps conforme necessário para o período desejado.

Autenticação sem senha via SSH

Gerar chaves SSH e distribuí-las para acesso remoto automatizado.

ssh-keygen -t ed25519
for host in srv01 srv02 srv03; do
  ssh-copy-id -i ~/.ssh/id_ed25519.pub usuario@$host
done

Substitua os nomes dos hosts e usuários conforme seu ambiente.

Análise de conexões de rede com netstat

Contar estados de conexões TCP para monitoramento.

netstat -ant | awk '/^tcp/ {estado[$NF]++} END {for (s in estado) print s, estado[s]}'

Estados comuns encluem ESTABLISHED, TIME_WAIT, e CLOSE_WAIT.

Processos com mais arquivos abertos

Usar lsof para identificar processos que consomem muitos descritores de arquivo.

lsof | awk '{print $2}' | sort | uniq -c | sort -n -r | head -10

Adapte o número em head para exibir mais ou menos processos.

Montioramento de E/S de disco

Ferramentas para diagnosticar gargalos de I/O.

Visão geral com iostat:

iostat -x 1 5

Identificar processos com alta E/S:

iotop -o -d 2

Relatórios detalhados com pidstat:

pidstat -d 3

Execute estes comandos para analisar desempenho em tempo real.

Limpeza de logs antigos

Automatizar a remoção de logs baseado na idade dos aqruivos.

find /var/log/app/ -type f -mtime +30 -name "*.log" -delete

Ajuste o caminho e o período em dias (+30) de acordo com a política de retenção.

Monitoramento de desempenho com sar

O sar é uma ferramenta avançada para coleta e análise de métricas de sistema. Para detalhes de uso, consulte a documentação oficial do sistema ou manuais especializados.

Tags: Linux shell administração de sistemas comandos terminal monitoramento de processos

Publicado em 7-9 07:03