Expresión cron 0 * * * * ejecuta cada hora en punto, 24 veces al día. Cubre acceso directo @hourly, programación de múltiples trabajos y error de * vs 0.
⏰Every hour
*Cualquier valor,Separador de lista-Rango/Paso1-5Rango 1 a 5*/15Cada 15 unidadesLa expresión cron 0 * * * * ejecuta un trabajo en el minuto 0 de cada hora. Los cinco campos son minuto, hora, día del mes, mes, día de la semana. Configurar el minuto a 0 y usar * para todo lo demas significa que el trabajo se ejecuta a las 00:00, 01:00, 02:00, etc., exactamente 24 veces al día.
La mayor fuente de trabajos cron desbocados es confundir * * * * * con 0 * * * *.
* * * * * # se ejecuta cada minuto, 1440 veces al día
0 * * * * # se ejecuta cada hora, 24 veces al día
Si quieres un trabajo por hora y escribes * * * * *, no notaras el problema hasta que revises tus logs y veas que se ha estado ejecutando todo el día.
La mayoría de las implementaciones cron soportan un conjunto de accesos directos @:
| Acceso directo | Equivalente |
|---|---|
@hourly |
0 * * * * |
@daily |
0 0 * * * |
@weekly |
0 0 * * 0 |
@monthly |
0 0 1 * * |
@yearly |
0 0 1 1 * |
@reboot |
se ejecuta una vez al inicio |
Si tienes multiples servicios y todos ejecutan trabajos por hora, programarlos todos como 0 * * * * crea un grupo a la hora en punto. Todo se ejecuta simultáneamente, las bases de datos reciben golpes al mismo tiempo.
La solución es desplazar cada trabajo unos minutos:
0 * * * * /opt/jobs/report-generator
7 * * * * /opt/jobs/cache-warmer
14 * * * * /opt/jobs/data-sync
21 * * * * /opt/jobs/cleanup
Los resumenes por hora son un limite natural para paneles que muestran metricas de la ‘última hora’.
Si extraes datos de un servicio externo y los datos cambian como máximo una vez por hora, sondear más frecuentemente es desperdiciar cuota.
Eliminar archivos temporales, limpiar entradas de cache caducadas o archivar registros antiguos a menudo se hace por hora.
Nothing you paste leaves this tab. Every tool runs entirely in your browser — no upload, no server, no account.