Noções básicas de CLI para Node
10 exemplos para curl, jq, ss e rastreamento de logs em servidores Linux executando APIs Node.js - 7 básicos e 3 intermediários.
Busque em todas as páginas da documentação
10 exemplos para curl, jq, ss e rastreamento de logs em servidores Linux executando APIs Node.js - 7 básicos e 3 intermediários.
curl, jq e ss instalados (padrão na maioria das imagens Linux).3000 padrão) e a rota de saúde (/health).curl -sf http://localhost:3000/health
curl -sf http://localhost:3000/ready-s silencioso, -f falha em HTTP 4xx/5xx (saída não zero)ready deve falhar quando Postgres/Redis estiverem inacessíveis# Com tempo para triagem de latência
curl -sf -w "time_total=%{time_total}\n" -o /dev/null http://localhost:3000/healthcurl -sf -X POST http://localhost:3000/orders \
-H "Content-Type: application/json" \
-H "x-request-id: cli-smoke-$(date +%s)" \
-d '{"customerId":"550e8400-e29b-41d4-a716-446655440000","items":[{"sku":"550e8400-e29b-41d4-a716-446655440001","quantity":1}]}'x-request-id para correlação de logsjq para saída legível: | jq .# Últimas 100 linhas de erro da saída padrão do contêiner
kubectl logs deploy/orders-api --tail=500 | jq -c 'select(.level=="error")' | tail -20
# Rastrear uma solicitação
kubectl logs deploy/orders-api --since=10m | jq -c 'select(.requestId=="abc-123")'jqselect(.statusCode >= 500) para erros HTTP em eventos request_completeRelacionado: pino - convenções de campos de log
ss -tlnp | grep node
ss -tlnp 'sport = :3000'ss substitui netstat obsoleto em Linux moderno0.0.0.0:3000, não apenas 127.0.0.1 em contêineresss -ssudo journalctl -u orders-api -f --since "15 min ago"
sudo journalctl -u orders-api -p err --since today-f segue logs ao vivo em VMs sem Kubernetessystemctl status orders-api para loops de reinicializaçãodocker logs -f --tail 200 orders-api
docker logs orders-api 2>&1 | jq -c 'select(.level=="error")' | tail -10docker exec para ler arquivos de log que não existemcurl -sf https://api.stripe.com/v1/charges -H "Authorization: Bearer sk_test_xxx" -o /dev/null -w "%{http_code}\n"
getent hosts postgres.internal#!/usr/bin/env bash
set -euo pipefail
BASE_URL="${BASE_URL:-http://localhost:3000}"
curl -sf "$BASE_URL/health" | jq -e '.status == "ok"'
curl -sf "$BASE_URL/ready" | jq -e '.status == "ok"'
echo "smoke OK"bin/smoke.sh; execute pós-implantação em CI ou SSHset -euo pipefail falha rapidamente no primeiro erroRelacionado: Melhores Práticas de CLI do Linux - higiene de scripts
curl -sI http://localhost:3000/orders/1 | grep -iE 'cache-control|x-request-id|content-type'-I requisição HEAD apenas para metadadosfor i in $(seq 1 20); do
curl -sf -o /dev/null -w "%{http_code} %{time_total}\n" http://localhost:3000/health
donek6 ou autocannon, não loops bash em produçãoExecute a partir do bastion ou pod de depuração com jq. Alternativamente, node -e para analisar JSON, mas jq é mais rápido para operações.
Esperado - a produção está atrás de VPN ou rede privada. Conecte-se via SSH ao bastion ou kubectl port-forward primeiro.
Versões da Stack: Esta página foi escrita para Node.js 24.18.0 (LTS Ativo), npm 10+, TypeScript 5.6+, Express 5, Fastify 5 e NestJS 11.
Revisado por Chris St. John·Última atualização: 16 de jul. de 2026