Files
pulse-memory/libs/linux/SYSTEM_DIAGNOSTIC.md
Pulse ae39e45460 feat: biblioteca inteligente libs/ + 5 novas skills (20 skills total)
NOVAS SKILLS:
- next-best-practices      v0.1.0  (CLEAN) — Next.js App Router, RSC, caching, data
- nextjs-patterns          v1.0.0  (CLEAN) — Next.js 15: Server Actions, route handlers
- vite                     v1.0.0  (CLEAN) — env vars, aliases, proxy, CJS compat
- uncle-bob                v1.0.0  (CLEAN) — Clean Code, SOLID, Clean Architecture
- clean-code-review        v1.0.0  (CLEAN) — naming, guard clauses, anti-patterns, refactoring
- vue                      v1.0.0  (CLEAN) — Vue framework
- vue-composition-api-best-practices v1.0.0 (CLEAN) — composables, Pinia, reactivity

BIBLIOTECA INTELIGENTE libs/ (10 dominios, 11 arquivos):
- typescript/ — TS safe + generics gotchas
- react/ — Next.js App Router + Vite config
- vue/ — Composition API + Pinia
- linux/ — System diagnostic cheatsheet
- database/ — PostgreSQL + MySQL patterns
- browser/ — Chromium CLI + E2E testing
- security/ — SAST audit (OWASP Top 10)
- best-practices/ — Clean Code + SOLID + Clean Architecture
- deploy/ — Docker multi-stack + OpenClaw ops
- + INDEX.md como guia de navegacao

.learnings/ — LRN-20260519-003 criado (biblioteca compartilhada)
2026-05-19 21:03:25 -03:00

4.0 KiB

System Diagnostic — Linux Cheatsheet

Comandos essenciais para análise de sistema, processos, disco, rede e segurança.

Diagnóstico Rápido

uptime                # Uptime + média de carga (1, 5, 15 min)
w                     # Usuários logados + carga
dmesg -T              # Logs do kernel com timestamp
who                   # Quem está logado agora
last                  # Histórico de login
lastlog               # Último login de cada usuário
lsb_release -a        # Versão do SO
uname -a              # Kernel info completo
lscpu                 # Info da CPU
lsblk                 # Dispositivos de bloco (discos)
mount | column -t     # Filesystems montados
df -h                 # Uso de disco (human-readable)
df -i                 # Inodes por filesystem
free -h               # RAM/Swap
swapon --show         # Partições de swap ativas
cat /proc/loadavg     # Load average preciso

🔍 Saúde do Sistema

# Processos por CPU
ps aux --sort=-%cpu | head
ps aux --sort=-%mem | head
# Top em tempo real
htop
top
# Serviços com problema
systemctl --type=service --state=failed
systemctl list-units --state=failed
# Atualizações disponíveis
apt list --upgradable 2>/dev/null | grep "^.*/.*"
dnf check-update 2>/dev/null

🕵️ Análise de Logs

# Logs de системы em tempo real
journalctl -f
journalctl -u nginx --since "1h"
journalctl -p err --since "30min"    # Apenas erros recentes

# Logs de autenticação
grep "Failed password" /var/log/auth.log
grep "Accepted" /var/log/auth.log | tail -20

# Logs estruturados (JSON) com jq
jq 'select(.level=="ERROR") | .user + ": " + .message' app.log

# Tamanho de arquivos de log
du -sh /var/log/
find /var/log -name "*.log" -size +100M -exec ls -lh {} \;

# Erros em tempo real
tail -f /var/log/syslog

🕸️ Diagnóstico de Rede

ss -tlnp           # Portas TCP abertas (listening) — substitui netstat
ss -tunp           # Todas as conexões (TCP/UDP)
ss -s              # Estatísticas de conexão
ip addr            # Endereços IP das interfaces
ip route           # Tabela de roteamento
ping -c 5 8.8.8.8  # Teste de conectividade
traceroute 8.8.8.8 # Rota até destino
mtr --report 8.8.8.8  # Traceroute + estatísticas contínuas
nslookup dominio.com   # DNS lookup
dig dominio.com A      # DNS detalhado

# Velocidade de download
curl -o /dev/null -s -w 'Speed: %{speed_download} bytes/sec\n' http://example.com/file

# WHOIS
whois dominio.com
curl -s https://ipinfo.io/json

🔐 Usuários e Permissões

who                        # Quem está logado
w                          # Mais detalhes (idle, processo)
id                         # UID/GID do usuário atual
sudo -l -U root            # O que root pode executar sem senha
grep sudo /etc/group        # Quem está no grupo sudo
# Ou: lista de usuários com UID >= 1000
awk -F: '($3 >= 1000) && ($3 < 65534)' /etc/passwd

# Permissões de arquivo
find /pasta -perm /111 -ls      # Todos os executáveis na pasta
namei -l /caminho/para/arquivo  # Mostra permissões em cada nível
stat /caminho/arquivo           # Permissões detalhadas + dono + timestamps

# SSH
sshd -T                        # Configuração SSH ativa (efetiva)
ssh-copy-id user@host          # Copiar chave pública para remoto

💻 Scripts Shell

#!/usr/bin/env bash
set -euo pipefail     # Erro se: erro (-e), variável não definida (-u), pipe falha (-o pipefail)

# Logging
log() {
  echo "[$(date -Iseconds)] $*" >> /var/log/meu-script.log
}
log "Iniciando..."

# Trap para cleanup — executa no EXIT ou SIGINT
trap 'rm -f /tmp/$$tmpfile; log "Limpeza concluída"' EXIT

# Verificar binário antes de usar
if ! command -v jq >/dev/null 2>&1; then
  log "ERRO: jq não encontrado"
  exit 1
fi

📦 Monitoramento de Saúde

# Verificar Uptime de um processo
systemd-analyze time
systemd-analyze critical-chain
# Histórico de uso de CPU/memória por processo
pidstat -u -p ALL 1 5
# Memória detalhada
cat /proc/meminfo | grep -E "MemTotal|MemAvailable|MemFree"