Saltar al contenido
LeedyBox
Apoyar

Analizador y generador de expresiones cron

Interpreta expresiones cron de Unix, Spring, Quartz y AWS, consulta las próximas ejecuciones en cualquier zona horaria o crea una expresión campo a campo.

Ejemplos:

Programación

Desglose por campos

CampoExpresiónValores

Próximas ejecuciones

    Generador visual

    Elige cómo se repite cada campo. «Valores concretos» admite una lista como 1,15 o MON,WED; «Rango», un desde-hasta como 9-17; «Cada N», el paso.

    Expresión generada
    Caracteres especiales
    *Todos los valores del campo.
    ,Lista de valores, p. ej. 1,15,30.
    -Rango, p. ej. 9-17 o MON-FRI.
    /Paso, p. ej. */15 = cada 15; 5/15 = desde 5 cada 15 (no en el cron de Unix).
    ?Sin valor concreto. Quartz y AWS lo exigen en el día del mes o en el día de la semana.
    LÚltimo: L en el día del mes = último día; L-3 = tres días antes; 5L en el día de la semana = último jueves (numeración de Quartz).
    WDía laborable más cercano: 15W = el día laborable más próximo al 15; LW = último día laborable del mes.
    #N.º día de la semana del mes: 6#3 = tercer viernes en Quartz/AWS (1 = domingo); 5#3 en Spring (0 = domingo).
    @daily …Macros: @yearly, @monthly, @weekly, @daily, @hourly; @reboot se ejecuta una vez al iniciar.

    Revisa los resultados antes de usarlos. La herramienta se ofrece tal cual, sin garantía, y sus resultados pueden ser incompletos o incorrectos. Términos del servicio

    Las implementaciones de cron difieren en el orden de los campos, la numeración de los días de la semana y los caracteres especiales. Las próximas ejecuciones se calculan en tu navegador para la zona horaria elegida; confirma la programación en el sistema que la ejecutará.

    Cómo se usa

    1. Escribe o pega una programación en «Expresión cron», o haz clic en uno de los ejemplos, que además ponen «Formato» en «Detección automática». El resumen y las ejecuciones se actualizan mientras escribes.
    2. Deja «Formato» en «Detección automática» o selecciona el sistema para el que está escrita la expresión. La detección automática interpreta 5 campos como Unix y 7 como Quartz. Con 6 campos, elige AWS o Quartz según la posición de «?», elige AWS cuando el último campo contiene un año entre 1970 y 2199 y, en los demás casos, supone que es Spring. Las macros como @weekly se interpretan como Unix. Cuando la expresión es válida, la línea de estado indica el formato que se ha usado.
    3. Lee «Programación» y «Desglose por campos» para ver qué valores abarca cada campo y luego revisa las fechas de «Próximas ejecuciones». «Zona horaria» empieza con la zona de tu navegador; selecciona otra si hace falta y elige 5, 10 o 20 en «Ejecuciones a mostrar». En las zonas distintas de UTC, cada ejecución muestra también la hora UTC.
    4. Si prefieres crear la expresión en lugar de escribirla, abre «Generador visual», selecciona un formato y elige cómo se repite cada campo, con un valor allí donde el campo lo pida. «Usar esta expresión» copia la «Expresión generada» en «Expresión cron», pone «Formato» en el formato del generador y la analiza, para que puedas comprobar las ejecuciones.

    Preguntas frecuentes

    ¿Se envía a algún sitio la expresión que introduzco?

    No. La expresión se analiza y las ejecuciones se calculan en tu navegador con JavaScript; no se sube a LeedyBox.

    ¿Por qué 0 0 13 * 5 se ejecuta todos los viernes y no solo los viernes 13?

    En el cron de Unix, cuando el día del mes y el día de la semana están restringidos (ninguno de los dos empieza por *), un día coincide si coincide cualquiera de los dos campos, así que esta expresión se ejecuta el día 13 de cada mes y todos los viernes. La herramienta aplica esta regla a las expresiones Unix, y «Programación» indica entonces «basta con uno de los dos». En las expresiones Spring exige que coincidan ambos campos, y Quartz y AWS evitan la cuestión exigiendo «?» en uno de los dos campos. En el cron de Unix, una solución habitual es programar la tarea todos los viernes y comprobar la fecha dentro de ella.

    ¿El domingo es 0, 1 o 7?

    Depende del formato. En las expresiones Unix y Spring, 0 y 7 significan domingo y 1 es lunes; en Quartz y AWS, 1 es domingo y 7 es sábado, así que allí 1-5 significa de domingo a jueves. Los nombres de día como MON-FRI evitan esta diferencia en Spring, Quartz y AWS.

    ¿Por qué se rechaza mi línea de crontab o mi expresión cron( ) de AWS?

    Introduce solo los campos de la programación. El comando al final de una línea de crontab, y el nombre de usuario en /etc/crontab, se cuentan como campos adicionales, así que la herramienta indica un campo no válido o un número de campos incorrecto. Para AWS, pega los seis campos que hay dentro de cron( ) sin el envoltorio.

    ¿Cómo reescribo una expresión Unix para Spring, Quartz o AWS?

    Spring añade un campo de segundos al principio, así que 0 9 * * 1-5 pasa a ser 0 0 9 * * 1-5. Quartz además necesita «?» en uno de los campos de día y numera el domingo como 1, así que la misma programación es 0 0 9 ? * MON-FRI. AWS no tiene campo de segundos, necesita «?» en uno de los campos de día, como Quartz, y añade un año al final: 0 9 ? * MON-FRI *. Si la expresión Unix restringe los dos campos de día, depende de la regla de «basta con uno de los dos» descrita más arriba, que estos formatos no usan, así que normalmente necesitas dos programaciones. Comprueba el resultado con el formato de destino seleccionado y compara las próximas ejecuciones.

    ¿Por qué la herramienta dice que no se encontró ninguna ejecución?

    La expresión es válida, pero no se encontró ninguna hora que coincida en los aproximadamente 8 años siguientes que revisa la herramienta. Las causas típicas son fechas que no existen, como 0 0 30 2 * (30 de febrero) o el día 31 combinado solo con meses de 30 días, y un campo de año que está en el pasado. Un año situado a más de 8 años vista da el mismo mensaje, aunque esa programación pueda ejecutarse más adelante. Algunos planificadores, incluido el cron clásico de Unix, aceptan sin aviso una fecha que no existe, y la tarea no se ejecuta.

    ¿Qué zona horaria se usa y qué pasa con el horario de verano?

    Las ejecuciones se calculan para la zona seleccionada en «Zona horaria». Elige la que usa tu planificador: crontab suele seguir la zona horaria del servidor, las reglas programadas de AWS EventBridge usan UTC y EventBridge Scheduler permite configurar una zona horaria. El menú ofrece la zona de tu navegador, UTC y una selección de zonas habituales; si la zona de tu planificador no aparece, elige una con el mismo desfase respecto a UTC y las mismas fechas de cambio de hora. Una ejecución a una hora que se salta cuando se adelantan los relojes no aparece en la lista, y una hora que se repite cuando se atrasan aparece una sola vez. Los demonios cron gestionan estas horas de formas distintas; cronie, por ejemplo, puede ejecutar una tarea de una hora saltada justo después del cambio. Comprueba el comportamiento de tu planificador o usa UTC, que no tiene horario de verano.