La Expresión */5 * * * *
La expresión cron */5 * * * * programa un trabajo para ejecutarse cada 5 minutos, cada hora, cada día. Los cinco campos corresponden a: minuto, hora, día del mes, mes, día de la semana. Un * en un campo significa ‘cada valor válido’. */5 en el campo de minutos usa el operador de paso para seleccionar cada 5to valor.
El Operador de Paso
El carácter / en cron se llama operador de paso. La sintaxis */N significa ‘cada N unidades a través del rango completo’. Para el campo de minutos:
- Rango completo: 0-59
- Paso: 5
- Resultado: 0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55
También puedes usar el paso en un rango restringido. 10-30/5 se expande a 10,15,20,25,30.
Cuando un Programa de 5 Minutos Tiene Sentido
Health checks y monitoreo de uptime
Verificar un endpoint cada 5 minutos atrapa fallos dentro de una ventana de 5 minutos.
Calentamiento y recarga de cache
Si tu aplicación almacena en cache datos que expiran después de 10-30 minutos, un cron de 5 minutos que precarga y rellena el cache evita fallos de cache.
Sondeo de APIs externas
Cuándo no hay webhook disponible y necesitas extraer datos de una fuente externa, 5 minutos es a menudo el intervalo más corto que se mantiene dentro de los limites de velocidad.
Alternativas y Comparación
| Expresión | Ejecuciones/hora | Uso típico |
|---|---|---|
*/1 * * * * | 60 | Sondeo en tiempo real |
*/5 * * * * | 12 | Health checks, recarga de cache |
*/10 * * * * | 6 | Sondeo moderado |
*/15 * * * * | 4 | Informes por cuarto de hora |
*/30 * * * * | 2 | Resumenes de media hora |
0 * * * * | 1 | Trabajos por hora |
Cron vs systemd Timer
En sistemas Linux modernos con systemd, puedes usar OnCalendar en una unidad .timer en lugar de cron:
[Timer]
OnCalendar=*:0/5
Persistent=true
OnCalendar=*:0/5 se ejecuta cada 5 minutos de cada hora. La opción Persistent=true re-ejecuta el trabajo si el sistema estaba apagado cuando estaba programado.