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)
This commit is contained in:
@@ -0,0 +1,134 @@
|
||||
# System Diagnostic — Linux Cheatsheet
|
||||
|
||||
> Comandos essenciais para análise de sistema, processos, disco, rede e segurança.
|
||||
|
||||
## Diagnóstico Rápido
|
||||
```bash
|
||||
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
|
||||
```bash
|
||||
# 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
|
||||
```bash
|
||||
# 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
|
||||
```bash
|
||||
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
|
||||
```bash
|
||||
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
|
||||
```bash
|
||||
#!/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
|
||||
```bash
|
||||
# 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"
|
||||
```
|
||||
Reference in New Issue
Block a user