Generador de expresiones Cron
Crea una expresión cron simplemente eligiendo minuto, hora, día, mes y día de la semana en menús desplegables y campos numéricos. Previsualiza al instante la cadena cron generada, una descripción en lenguaje sencillo y las próximas 5 ejecuciones. Útil para escribir un crontab o el "schedule" de GitHub Actions.
Referencia rápida de horarios habituales
Una lista de expresiones cron para horarios típicos. Haz clic en una fila para aplicarla como preset en el generador de arriba.
| Preset | Expresión cron | Significado |
|---|---|---|
| Cada día a medianoche | 0 0 * * * | Se ejecuta todos los días a medianoche (00:00). |
| Días laborables a las 9 | 0 9 * * 1-5 | Se ejecuta a las 9:00 los días laborables (lunes a viernes). |
| Cada hora, en el minuto 0 | 0 * * * * | Se ejecuta una vez por hora, en el minuto 0. |
| Cada lunes | 0 0 * * 1 | Se ejecuta cada lunes a medianoche (00:00). |
Qué es una expresión cron
Una expresión cron son los cinco campos numéricos que indican al planificador de tareas de un sistema UNIX cuándo debe ejecutar algo. De izquierda a derecha son minuto, hora, día del mes, mes y día de la semana, separados por espacios, como en `30 3 * * 1`, que significa «todos los lunes a las 3:30 de la madrugada». La notación es muy compacta, y ahí está justamente su punto débil: un campo mal escrito suele seguir siendo válido desde el punto de vista sintáctico, de modo que la tarea se ejecuta en silencio a la hora equivocada y nadie lo advierte hasta mucho después.
Esta herramienta permite configurar cada uno de los cinco campos eligiendo entre cinco modos —todos los valores, un valor concreto, una lista, un rango o un intervalo— y muestra a la vez la expresión resultante y su lectura en lenguaje corriente. Como puede recorrer en la misma pantalla el camino de los datos a la expresión y el de la expresión a la frase, es posible comprobar que lo escrito coincide con lo pretendido antes de que llegue a un servidor. Todo el procesamiento ocurre en su navegador: nada de lo que escriba se envía a ninguna parte.
Cómo construir una expresión cron
- Parta de una plantilla Elija la más cercana entre las cuatro disponibles —medianoche a diario, las 9 en días laborables, cada hora en punto o todos los lunes— y los campos quedarán rellenados. Es más rápido que empezar de cero y deja menos margen al error.
- Escoja un modo para cada campo Para minuto, hora, día, mes y día de la semana seleccione todos los valores (*), un valor concreto, una lista, un rango o un intervalo (*/n). Deje en «todos los valores» los campos que no le interesen.
- Introduzca los valores La lista admite números separados por comas, el rango pide un inicio y un final, y el intervalo pide cada cuánto ejecutar. Los minutos van de 0 a 59, las horas de 0 a 23, los días de 1 a 31, los meses de 1 a 12 y los días de la semana de 0 a 6, donde 0 es domingo.
- Contraste la expresión con la descripción Lea en paralelo la expresión generada y la frase que aparece debajo. Si la frase no coincide con su intención, corrija el campo que falla.
- Péguela en su crontab Cuando la lectura sea correcta, copie la expresión, abra su tabla con `crontab -e`, colóquela al principio de una línea y escriba a continuación el comando que quiere ejecutar.
Consejos para aprovecharla mejor
- Si pones el día de la semana en modo "Rango" de 1 a 5, obtienes de lunes a viernes en un solo paso.
- El modo "Lista" permite introducir varios valores separados por comas; por ejemplo, escribir "0,15,30,45" en el campo de minutos equivale a ejecutar cada 15 minutos.
- Si tanto el día del mes como el día de la semana están en un valor distinto de "Cada uno (*)", el cron estándar los trata como una condición OR: la tarea se ejecuta si se cumple cualquiera de los dos.
- La expresión cron generada se puede copiar al portapapeles con el botón "Copiar", lista para pegar directamente en un crontab o en un archivo YAML de GitHub Actions.
- Haz clic en un botón de preset, o en una fila de la tabla de referencia rápida de abajo, para aplicar un horario habitual al generador con un solo clic.
Dónde resulta útil esta herramienta
Programar copias de seguridad y procesos por lotes
Los volcados de base de datos y la consolidación de registros suelen colocarse en las horas de menor actividad. Puede montar algo como «cada día a las 3:05» sin tener que recordar antes la sintaxis.
Ejecutar solo en días laborables
Fijar el campo de día de la semana en el rango 1–5 limita la tarea a los días hábiles. Cron no sabe nada de los festivos, así que, si necesita excluirlos, incorpore la comprobación dentro de su propio script.
Descifrar una expresión escrita por otra persona
Cuando hereda un servidor cuyo crontab contiene algo como `*/15 2-5 * * *`, reproducir aquí la misma configuración y leer la descripción evita interpretaciones equivocadas.
Configurar horarios en CI y contenedores
Las entradas `schedule` de GitHub Actions y los CronJob de Kubernetes usan los mismos cinco campos. Eso sí, normalmente funcionan en UTC, de modo que conviene desplazar el campo de la hora según su diferencia horaria.
Términos de cron
- cron
- El programa residente de los sistemas tipo UNIX que ejecuta comandos a las horas indicadas. Su configuración vive en una tabla propia de cada usuario llamada crontab.
- crontab
- Designa tanto la propia tabla de horarios como el comando que sirve para editarla (`crontab -e`). Cada línea empareja una expresión cron con el comando que debe ejecutarse.
- Asterisco (*)
- Significa «todos los valores» de ese campo. Un asterisco en el campo de los minutos quiere decir cada minuto; en el campo del mes, todos los meses.
- Intervalo (*/n)
- Ejecuta cada n valores. Un `*/15` en el campo de los minutos corresponde a los minutos 0, 15, 30 y 45. El recuento arranca siempre desde el valor más bajo del campo: no significa «n minutos después de la última ejecución».
- Listas y rangos
- La lista enumera valores separados por comas (`1,15`); el rango los une con un guion (`9-17`). Ambos pueden combinarse en un mismo campo, como en `1-5,10`.
- Día del mes junto con día de la semana
- En la mayoría de las implementaciones de cron, si tanto el campo del día del mes como el del día de la semana son distintos de *, la tarea se ejecuta cuando coincide **cualquiera de los dos**, no ambos a la vez. Por eso `0 0 1 * 1` significa «el día 1 de cada mes y, además, todos los lunes», una combinación que sorprende con frecuencia.
Preguntas frecuentes
A propósito — Por qué escribir una expresión cron es más difícil que leerla
Una expresión cron parece sencilla una vez que conoces sus 5 campos, pero escribir una a mano implica recordar detalles como si "*/15" o "1-30/5" es la forma correcta, o si los días de la semana empiezan en 0 o en 1 — detalles fáciles de equivocar. Leer una expresión cron ya existente (la tarea del Analizador de expresiones Cron de este sitio) es comparativamente mecánico, ya que basta con recorrer los campos uno a uno.
Esta herramienta se construye alrededor de esa asimetría: apoya el acto de crear una expresión cron a partir de selecciones en la interfaz, en lugar de escribir sintaxis en bruto. Expresas tu intención directamente —"ejecutar a las 9 los días laborables"— mediante menús desplegables y campos numéricos, y la herramienta ensambla una expresión cron que la satisface, eliminando por completo la necesidad de memorizar la sintaxis.
Como comprobación final, la herramienta muestra una vista previa de las próximas 5 ejecuciones programadas para la expresión que acabas de crear. Esto importa especialmente por una regla sutil que suele confundir: cuando el día del mes y el día de la semana están ambos restringidos, cron los trata como una condición OR en lugar de una AND. Ver las fechas candidatas reales ayuda a detectar una tarea que, de otro modo, se ejecutaría con más frecuencia de la prevista.