ae39e45460
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)
4.0 KiB
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"