Saltar al contenido

Cron

Pega una expresión cron y obtén descripción, próximas 10 ejecuciones y significado de cada campo. Plantillas comunes incluidas.

100% Gratis Sin registro Solo navegador 5 idiomas Modo oscuro

    📖 Sintaxis de cron

    📖 Dónde se suele tropezar

    Pega una expresión cron y esta página la explica en palabras y calcula las diez próximas ejecuciones. Los cálculos usan la zona horaria de tu navegador, no la del servidor que ejecutará el trabajo. Y que la expresión sea válida es una cuestión aparte de si el trabajo llega a ejecutarse: nada de esto te dice si el demonio cron está vivo ni si el usuario que ejecuta tiene los permisos y el PATH correctos.

    Caso Qué ocurre Qué hacer
    Especificar día del mes y día de la semana Cuando ninguno de los dos campos es *, se combinan con OR, no con AND. 0 0 1 * 1 no significa el día 1 y que sea lunes, sino el día 1 o cualquier lunes, con unas cinco ejecuciones al mes. Este comportamiento heredado de Vixie cron es contraintuitivo y una fuente clásica de incidentes. Deja siempre uno de los dos como *. Si de verdad necesitas el AND —el día 1 sólo cuando cae en lunes—, programa la tarea a diario y comprueba la fecha al principio del script para salir pronto.
    Usar */n fuera del campo de minutos */n significa valores divisibles por n, no cada n horas. 0 */5 * * * se ejecuta a las 00, 05, 10, 15 y 20, y el salto de las 20:00 a las 00:00 siguientes es de cuatro horas, porque 24 no es divisible entre 5. El mismo salto ocurre a fin de mes en el campo del día. Para un intervalo uniforme, enumera los valores: 0 0,6,12,18 * * * para cada seis horas. En el campo de minutos */5 sí es uniforme, porque 60 se divide entre 5, 10, 15, 20 y 30. Para limitar el horario laboral sirve un rango: 0 9-18 * * 1-5.
    Funciona a mano pero no bajo cron El entorno que da cron no se parece a una shell de login. PATH es poco más que /usr/bin:/bin, no se lee .bashrc y nada inicializa nvm ni rbenv. Peor aún: stdout y stderr no van a ninguna parte si no hay correo configurado, así que el fallo es invisible. Usa rutas absolutas en cada comando —lo que imprimió which node—, declara PATH= y CRON_TZ=Europe/Madrid al principio del crontab y añade >> /var/log/myjob.log 2>&1. Para depurar, programa * * * * * env > /tmp/cronenv durante un minuto y lee exactamente qué entorno entrega cron.

    Este analizador cubre el cron estándar de cinco campos: minuto, hora, día del mes, mes y día de la semana. La forma de seis campos con segundos al principio es una extensión propia de Quartz, node-cron o el @Scheduled de Spring, y un crontab de Linux la rechazará. A la inversa, atajos como @daily o @reboot funcionan en crontab pero muchas bibliotecas no los entienden. Comprueba la documentación de lo que vaya a ejecutarlo de verdad.

    📖 Cómo usar

    1. 1
      5 campos: min hora día mes dow
      De izq. a der.: min, hora, día mes, día-semana
    2. 2
      Especiales: * / , -
      * = todos, */N = cada N, A,B = A o B, A-B = A a B
    3. 3
      Verifica horarios
      Revisa "próximas 10" antes de desplegar

    ❓ Preguntas frecuentes

    ¿Soporta 6 campos?
    Solo 5 campos por ahora. Quartz/Spring no soportado
    ¿Para expresiones complejas?
    Confía en "próximas 10". dow + dom OR no AND
    ¿Zona horaria?
    Hora local del navegador. Verifica TZ del servidor
    🐛 ¿Encontró un problema con esta herramienta?

    Gratis, sin registro. Incluso solo los pasos para reproducir ayudan. Los informes van directamente al operador y se usan para corregir.

    * Se envía automáticamente la info del navegador (UA / pantalla / idioma / URL) para reproducir