Generador cron de AWS
Generador cron
Contador de texto
JSON a CSV
CSV a JSON
Conversor de timestamp Unix
Generador de UUID v4 y v7
JSON a TypeScript
Markdown a PDF
Base64
Imágenes
JSON
Código QR
Contraseñas
Unidades
Hash
Colores
Herramientas PDF
Editor de PDF
Codificador de URL
Conversor de Formato
Lorem Ipsum
Probador de expresiones regulares
Decodificador JWT
Diferencia de texto
Optimizador SVG
Visor EXIF
Extractor de color
Generador de favicones
Convertidor universal
Conversor de Horas
Divisor de PDF
Imágenes a PDF
PDF a Imagen
Eliminar Fondo
Volver al BlogUTILX / Notas y guías

Expresiones cron: comprueba el horario antes de programar una tarea

Un calendario y un reloj conectados a cinco campos cron

Una programación necesita algo más que una expresión que parezca correcta. Los mismos cinco campos pueden producir instantes distintos al interpretarse en zonas horarias diferentes. Además, una expresión válida puede describir una regla de negocio equivocada. Antes de configurar una tarea, conviene escribir qué debe ocurrir, qué reloj importa y cómo se reconocerá un resultado correcto.

El generador de cron permite revisar esa decisión: valida una expresión Unix admitida y muestra fechas coincidentes. No instala un crontab, no se conecta a un servidor ni ejecuta trabajos. Su resultado sirve como evidencia para revisar una configuración que después se aplicará en el sistema responsable de ejecutarla.

Convierte la necesidad en una regla de calendario

Imagina un equipo que necesita un informe a las 09:00 de cada día laborable en Madrid. Primero aclara si «laborable» significa de lunes a viernes o el calendario real de la organización. Cron permite expresar la primera definición; los festivos, cierres excepcionales y sábados de trabajo requieren lógica adicional. Sin esa distinción, una expresión impecable puede enviar informes cuando nadie los espera.

Los cinco campos son minuto, hora, día del mes, mes y día de la semana, en ese orden. El informe semanal se expresa como 0 9 * * 1-5, seleccionando Europe/Madrid por separado. La zona predeterminada de la herramienta es UTC. Mantenerla significaría las nueve en UTC, una necesidad distinta de las nueve del reloj local de Madrid.

Guarda juntos expresión, zona y comportamiento esperado. Una captura con cinco campos pierde parte de la configuración. Añade una frase sobre los festivos y el sistema que ejecutará el informe, para que otra persona pueda entender tanto la regla como su contexto operativo.

Empieza con un ejemplo que pueda repetirse

Utiliza estos datos fijos antes de trabajar con el momento actual:

Expresión: */15 * * * *
Zona: UTC
Después de: 2026-01-01T00:00:00Z
Primeras coincidencias:
2026-01-01T00:15:00Z
2026-01-01T00:30:00Z
2026-01-01T00:45:00Z

Son fechas históricas de comprobación, no próximas ejecuciones respecto al momento de lectura. El límite «después de» es exclusivo: la coincidencia exacta de medianoche queda fuera. El campo de minutos selecciona cero, quince, treinta y cuarenta y cinco dentro de cada hora; las horas siguientes repiten esas posiciones.

Anota los tres resultados antes de modificar la expresión. Si el sistema de producción interpreta lo mismo de otra manera, investiga su dialecto cron, instante de referencia y zona. Desplazar la hora hasta que la primera fecha resulte conveniente puede ocultar un error que reaparecerá al cambiar de día o de estación.

Después prueba el informe laborable y examina varias fechas, incluida la transición de viernes a lunes. La vista previa aporta pruebas concretas del calendario; la necesidad escrita indica cuáles debes revisar.

Revisa un campo cada vez

Abre la herramienta e introduce cinco campos, sin comando, nombre de usuario ni declaración de entorno. Elige expresamente una zona admitida. Resuelve los errores de validación antes de interpretar fechas: un resultado antiguo en tus notas no demuestra nada sobre una expresión nueva que sea inválida.

Construye la regla progresivamente. Empieza por minuto y hora; después restringe los días de semana o del mes. Usa listas para valores separados, rangos para conjuntos continuos y pasos para posiciones repetidas dentro de un campo. Tras cada cambio, comprueba que la expresión visible y las fechas siguen correspondiendo a la intención original.

Para una programación importante, reúne ejemplos del principio y final de mes, del paso por un fin de semana y de un cambio horario cuando exista en esa zona. Conserva los instantes UTC junto con las etiquetas locales. Así podrás compararlos con registros de ejecución sin reconstruir qué desplazamiento correspondía a una hora ambigua.

Antes de copiar la expresión al ejecutor definitivo, revisa su documentación. Una vista previa de cinco campos no demuestra compatibilidad con un analizador de seis, una sintaxis específica de un proveedor o un servicio cuya zona se configure en otro lugar.

Entiende los conjuntos y la combinación de días

El asterisco admite todos los valores de un campo. Una lista como 1,3,5 elige valores separados y un rango como 1-5 incluye sus extremos. El paso se aplica dentro del campo, no mide tiempo continuo desde la ejecución anterior. Así, */35 en minutos selecciona los minutos cero y treinta y cinco de cada hora. Al cruzar de hora, la distancia es de veinticinco minutos.

Los dos campos de día merecen una revisión específica. Cuando ninguno empieza con asterisco, la herramienta aplica la combinación Unix OR: basta con que coincida el día del mes o el de la semana. Por ejemplo, 0 9 1 * 1 indica las nueve del primer día de cada mes y de cada lunes; no significa solamente los meses cuyo primer día sea lunes. Si alguno empieza con *, incluido */n, deben coincidir ambas selecciones. Así, 0 9 */1 * 1 selecciona lunes; sustituir */1 por 1-31 cambia la combinación a OR.

El manual de crontab de Cronie explica estos conceptos y otras variantes. UtilX admite deliberadamente un subconjunto numérico: números, asteriscos, listas, rangos y pasos. La presencia de una extensión en ese manual no implica que esta herramienta la acepte.

Detecta expresiones válidas con una intención equivocada

Un sexto campo suele causar confusión: algunos sistemas incluyen segundos y otros añaden un año. Eliminar un campo al azar puede cambiar la regla silenciosamente. Identifica el dialecto de origen, traduce la necesidad y verifica fechas en el destino. Los nombres, macros y extensiones como L, W, # y ? quedan fuera del formato admitido.

Otro error habitual consiste en combinar fecha mensual y día semanal esperando una condición AND. Comprueba una fecha que satisfaga solo uno de ellos. Ese caso revela el malentendido mejor que una primera coincidencia que, por casualidad, cumple ambas condiciones.

Una vista previa vacía o incompleta también exige interpretación. La combinación puede ser imposible o tan poco frecuente que no haya diez coincidencias en el horizonte de cinco años. No deduzcas que jamás se ejecutará por no obtener una lista completa. Revisa por separado la validación, la zona y la regla de calendario.

Comprueba el cambio horario con instantes concretos

Una zona con nombre contiene reglas regionales; un desplazamiento fijo describe una relación con UTC. Europe/Madrid no equivale a conservar siempre el mismo desplazamiento. La base de zonas horarias de IANA mantiene esos cambios y el entorno recibe sus actualizaciones. Las proyecciones dependen de las reglas disponibles.

El caso diario 30 2 * * *, en Europe/Madrid, muestra por qué importa comprobar el motor. El 29 de marzo de 2026, la hora inexistente 02:30 se desplaza a las 03:30 locales, 01:30Z. El 25 de octubre de 2026 se elige la primera 02:30, 00:30Z, y no se añade la segunda. Esta evidencia corresponde a esa regla diaria; no debe generalizarse a todas las expresiones posibles.

Contrasta esa política con el ejecutor de producción. Para un informe ligado a la apertura de una oficina, una zona regional expresa la necesidad. Para un proceso acordado explícitamente en UTC, conserva UTC. Documenta la elección para que un cambio de servidor no altere el reloj esperado.

Distingue cálculo y ejecución

La herramienta busca hasta diez fechas posteriores dentro de cinco años y admite expresiones de hasta 256 caracteres. No desarrolla el calendario completo de una tarea. Una regla infrecuente puede ofrecer menos fechas en ese intervalo; una combinación imposible necesita corregirse, no prolongar indefinidamente la búsqueda.

La página no ejecuta comandos, guarda tareas programadas ni garantiza entregas. Tampoco establece si una ejecución se solapará con la anterior, si el equipo estará apagado o si un reintento duplicará un informe. Esas propiedades pertenecen al ejecutor y a la aplicación.

Si necesitas un único informe por período de negocio, diseña y prueba esa propiedad aparte. La expresión es solo una parte de la solución, junto con los registros de ejecución, el tratamiento de fallos y una definición precisa del período procesado.

Conserva pruebas útiles para el mantenimiento

Guarda expresión, zona, instante inicial y fechas esperadas representativas. Revisa límites de semana y mes, combinación OR de días restringidos y cambios de hora pertinentes. Indica si la necesidad sigue UTC o un reloj local y qué ocurre con festivos que cron no puede distinguir.

En el ejemplo fijo, exige 00:15, 00:30 y 00:45 UTC después de medianoche del 1 de enero de 2026. En la configuración real, compara con el ejecutor antes de activarla. Mantén separadas las pruebas operativas para no confundir una fecha calculada correctamente con un informe entregado correctamente.

Fuentes: manual de crontab de Cronie y base de zonas horarias de IANA.