Alternativa a cron
Conserva la simplicidad de cron y añade los controles que exige producción.
Dagu mantiene los horarios cerca de tus scripts mientras añade grafos de dependencias, retries, logs, historial, reruns manuales y Web UI.
name: nightly-ops
schedule: "0 2 * * *"
steps:
- id: extract
run: python scripts/extract.py
- id: transform
run: ./bin/transform
retry_policy:
limit: 3
depends: [extract]
- id: notify
run: ./scripts/slack-success.sh
depends: [transform]Horarios estilo cron en YAML
Dependencias de pasos en lugar de cadenas shell
Rerun de pasos fallidos sin SSH manual
Historial y logs en una Web UI
At a glance
Cron vs. Dagu
Grafo nativo de pasos.
Cadenas shell, archivos lock y wrappers.
Políticas de retry por paso.
Bucles personalizados o reruns manuales.
Web UI, logs, estado e historial.
Logs del sistema y convenciones manuales.
In depth
Where each tool fits
Cron es simple hasta que los jobs dependen entre sí
En cuanto un script programado necesita retries, captura de salida, orden de ejecución o historial legible, cron se convierte en un montón de wrappers.
- Modela cada comando como un paso con nombre
- Usa dependencias en lugar de largas cadenas shell
- Inspecciona la salida fallida y relanza desde la Web UI
No hace falta migrar a una plataforma
Dagu ejecuta los scripts que ya tienes. La primera migración puede empezar por un solo job nocturno.
- Mantén jobs en Bash, Python, Go, Java, PHP o Perl
- Lleva los horarios a YAML versionado
- Añade timeouts y retries de forma gradual
Visibilidad operativa por defecto
Dagu reúne el estado de ejecución que cron suele dispersar entre syslog, archivos propios y conocimiento tribal.
- Consulta estado actual, historial y logs
- Lanza ejecuciones manuales sin entrar al host
- Usa notificaciones y pasos posteriores para manejar fallos
FAQ
Practical questions before adopting Dagu
¿Dagu soporta sintaxis cron?
Sí. Puedes definir horarios con expresiones cron conocidas y al mismo tiempo obtener estado de workflow y control por paso.
¿Tengo que reescribir mis scripts cron?
No. Coloca el comando existente en un paso de Dagu y añade dependencias, retries y notificaciones cuando lo necesites.
¿Necesita Kubernetes?
No. Dagu puede empezar como un solo proceso en una máquina normal y escalar a ejecución distribuida cuando haga falta.
Next step
Start with one workflow.
Install Dagu, move one fragile script or agent task into YAML, and decide from a real run history.