Detente de buscar sintaxis de Cron — hay un generador para eso
Las expresiones cron son una de esas cosas que usas constantemente pero que nunca consigues recordar. Aquí te explico lo que significan realmente los cinco campos, los errores que afectan a las personas, y por qué un generador en línea de expresiones cron es simplemente una opción más inteligente.
Son las 2 de la madrugada. Una implementación está programada para las 6 de la mañana. Necesitas verificar de nuevo que el trabajo cron realmente se ejecute en el momento correcto. Por lo tanto, abres una pestaña nueva y escribes "sintaxis de cron" en Google. De nuevo.
Este es un paso de paso. Cada desarrollador que haya tocado un servidor Linux lo ha hecho al menos una vez — y la mayoría de nosotros lo hemos hecho más veces de las que queremos admitir. Las expresiones de cron son una de esas cosas que usas constantemente pero que nunca retienes completamente. La sintaxis se encuentra en una zona incómoda entre «demasiado simple para buscar» y «lo suficientemente específica como para equivocarse».
Hay una manera mejor. Usa un generador en línea de expresiones de cron y deja que la herramienta maneje la sintaxis mientras te enfocas en lo que realmente importa.
Por qué la sintaxis de cron se resiste a quedarse
Cron tiene cinco campos. Cinco. Eso es todo. Y sin embargo, el orden confunde a las personas cada vez que lo intentan:
# ┌───────────── minute (0–59)
# │ ┌───────────── hour (0–23)
# │ │ ┌───────────── day of month (1–31)
# │ │ │ ┌───────────── month (1–12)
# │ │ │ │ ┌───────────── day of week (0–6, Sunday=0)
# │ │ │ │ │
* * * * * command
El problema no es que sea difícil — es que hay solo suficientes caracteres especiales para introducir ambigüedad. ¿Es */5 "cada 5 minutos" o "en el minuto 5"? ¿Ejecuta 0 9 * * 1-5 a las 9 de la mañana o a las 9 de la noche? ¿Qué pasa si olvidas que los meses son indexados desde 1 pero los días de la semana comienzan en 0?
Estos no son trampas para principiantes. Son trampas para todos. Un trabajo cron mal configurado es una de las formas más silenciosas de introducir un incidente en producción — el tipo en el que nada se cae inmediatamente, simplemente no se ejecuta y solo lo notan tres días después.
Los cinco campos, explicados sin ceremonia
Aquí está la versión práctica:
- Minuto (0–59) — El minuto del hora en el que se ejecuta el trabajo.
30significa la marca de los 30 minutos.*/15significa cada 15 minutos. - Hora (0–23) — Usa el tiempo en formato de 24 horas.
9es las 9 de la mañana.17es las 5 de la tarde. Sin tonterías de AM/PM. - Día del mes (1–31) — ¿Qué día del calendario?
1es el primer día del mes.15es el 15. - Mes (1–12) — Enero es
1, diciembre es12. También puedes usar nombres:JAN,FEB, etc. - Día de la semana (0–6 o 1–7) — Domingo puede ser
0o7dependiendo de la implementación de cron. Lunes siempre es1. Este es el campo que causa más confusión.
Los caracteres especiales que importan
*— Todos los valores posibles (cada minuto, cada hora, etc.)*/n— Cada nintervalo.*/5en el campo de minutos significa cada 5 minutos.a-b— Un rango.1-5en el campo de días de la semana significa lunes a viernes.a,b,c— Una lista.1,3,5significa lunes, miércoles, viernes.@reboot,@hourly,@daily— Alias abreviados. No soportados en todos los lugares.
Errores comunes que afectan a las personas
1. Olvidar el tiempo zona
Cron se ejecuta en la zona horaria local del servidor. Si tu servidor está en UTC y tú estás en Nueva York, 0 9 * * * no se ejecuta a las 9 de la mañana del Este — se ejecuta a las 4 o 5 de la mañana, dependiendo de la hora de verano. Siempre conoce la zona horaria del servidor. Siempre.
2. Usar tanto el día del mes como el día de la semana
Si especificas un valor en ambos campos de día del mes y y día de la semana (en lugar de * en uno de ellos), la mayoría de las implementaciones de cron lo tratan como una OR — el trabajo se ejecuta cuando cualquiera de las condiciones se cumple. Eso casi nunca es lo que quieres.
3. Esperar que */1 signifique "una sola vez"
*/1 es lo mismo que *. Significa "cada uno". No hay forma de expresar "ejecutar una sola vez" en cron estándar — para eso, usarías at o un temporizador systemd de una sola vez.
4. No probar antes de desplegar
Cron no da retroalimentación inmediata. Escribe la expresión, guarda el crontab y luego esperas. Si está mal, lo descubres a las 3 de la mañana cuando el backup programado no se ejecuta. Por eso, usar un calculador en línea de la próxima ejecución de cron antes de desplegar vale la pena los 30 segundos que toma.
Usa un generador de expresiones de cron en su lugar
La recomendación honesta: deja de intentar escribir expresiones de cron de memoria. Usa un generador. No es una señal de debilidad — es la forma de evitar errores estúpidos en producción.
El generador de expresiones de cron en IOTools te permite construir cualquier expresión visualmente — elige tu intervalo de minutos, hora, día de la semana y verás la expresión exacta y una explicación en lenguaje común de cuándo se ejecuta. Sin necesidad de memorizar, sin tener que abrir pestañas de documentación.
Una vez que tengas una expresión, ejecútala en el calculador en línea de la próxima ejecución de cron. Pega la expresión, obtén las próximas 5 a 10 ejecuciones programadas. Toma cinco segundos y te dirá inmediatamente si has programado accidentalmente tu trabajo de limpieza para que se ejecute cada minuto en lugar de una vez al día.
Esa segunda verificación es la que la mayoría de las personas omite. No la omitas.
Referencia rápida: expresiones que usarás realmente
| Expresión | Significado |
|---|---|
* * * * * | Cada minuto |
0 * * * * | Cada hora, en la hora |
0 9 * * * | Cada día a las 9:00 a.m. |
0 9 * * 1-5 | Días laborables a las 9:00 a.m. |
*/15 * * * * | Cada 15 minutos |
0 0 * * 0 | Cada domingo a medianoche |
0 0 1 * * | Primer día de cada mes a medianoche |
30 4 1,15 * * | 1º y 15º del mes a las 4:30 a.m. |
0 22 * * 1-5 | Días laborables a las 10:00 p.m. |
@daily | Una vez al día a medianoche (abreviatura) |
Instalar extensiones
Agregue herramientas IO a su navegador favorito para obtener acceso instantáneo y búsquedas más rápidas
恵 ¡El marcador ha llegado!
Marcador es una forma divertida de llevar un registro de tus juegos, todos los datos se almacenan en tu navegador. ¡Próximamente habrá más funciones!
Herramientas clave
Ver todo Los recién llegados
Ver todoActualizar: Nuestro última herramienta se agregó el 5 de mayo de 2026
