47fac22230
- .claude/CLAUDE.md - .claude/commands/subagentes.md - .claude/rules/INDEX.md - .mcp.json - bash/functions/cybersecurity/analyze_dns.md - bash/functions/cybersecurity/audit_http_headers.md - bash/functions/cybersecurity/audit_ssh_config.md - bash/functions/cybersecurity/check_firewall.md - bash/functions/cybersecurity/detect_suspicious_users.md - bash/functions/cybersecurity/encrypt_file.md - ... Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
61 lines
2.1 KiB
Markdown
61 lines
2.1 KiB
Markdown
---
|
|
name: tail_journal
|
|
kind: function
|
|
lang: bash
|
|
domain: infra
|
|
version: "1.0.0"
|
|
purity: impure
|
|
signature: "tail_journal(unit: string, lines: int=100, follow: bool=false, since: string=\"\", priority: string=\"info\") -> void"
|
|
description: "Wrapper sobre journalctl con formato consistente. Tail logs de una unidad systemd con coloreado, filtro por prioridad y seguimiento opcional."
|
|
tags: [journal, systemd, logs, pendiente-usar]
|
|
uses_functions: []
|
|
uses_types: []
|
|
returns: []
|
|
returns_optional: false
|
|
error_type: "error_go_core"
|
|
imports: []
|
|
params:
|
|
- name: unit
|
|
desc: "Nombre de la unidad systemd (ej. registry-api.service, caddy). Acepta sin extension .service."
|
|
- name: lines
|
|
desc: "Numero de lineas iniciales a mostrar. Default 100."
|
|
- name: follow
|
|
desc: "Si true o -f, activa seguimiento continuo (journalctl -f). Default false."
|
|
- name: since
|
|
desc: "Filtro temporal: '1 hour ago', 'yesterday', '2026-05-07'. Default vacio (sin filtro)."
|
|
- name: priority
|
|
desc: "Prioridad minima de logs: emerg|alert|crit|err|warning|notice|info|debug. Default info."
|
|
output: "Lineas de journalctl en formato short-iso, una por linea. Si follow=true, flujo continuo."
|
|
example: "tail_journal registry-api 200 true"
|
|
tested: false
|
|
tests: []
|
|
test_file_path: ""
|
|
file_path: "bash/functions/infra/tail_journal.sh"
|
|
---
|
|
|
|
## Ejemplo
|
|
|
|
```bash
|
|
# Ver ultimas 100 lineas de un servicio
|
|
tail_journal caddy
|
|
|
|
# Seguimiento continuo con 50 lineas iniciales
|
|
tail_journal registry-api.service 50 true
|
|
|
|
# Solo errores de la ultima hora
|
|
tail_journal my-app 200 false "1 hour ago" err
|
|
|
|
# Con pipe (funciona sin bufferizado)
|
|
tail_journal registry-api 100 true "" warning | grep "ERROR"
|
|
```
|
|
|
|
## Notas
|
|
|
|
Detecta automaticamente si la unit pertenece al usuario (systemctl --user) o al sistema (sudo journalctl). Si la unit no es de usuario, se llama con sudo — el usuario debe tener NOPASSWD para journalctl o sudo configurado.
|
|
|
|
Si follow=true, usa `stdbuf -oL` para deshabilitar el bufferizado de stdout, lo que permite piping en tiempo real (ej. `tail_journal ... | grep pattern`).
|
|
|
|
Exit codes: 1 unit no existe o no especificada, 2 prioridad invalida, 5 journalctl no disponible.
|
|
```
|
|
---
|