Generador de Expresiones Cron
Escribe y lee programaciones de crontab. Introduce una expresión cron y verás en palabras cuándo se ejecuta, las próximas ejecuciones y qué significa cada uno de los cinco campos.
Cada minuto.
Próximas ejecuciones
Las horas se muestran en la zona horaria de tu ordenador (). Cron usa la del servidor, que a menudo no es la misma.
Programaciones habituales
Elige una para cargarla en el campo de arriba.
| * * * * * | Cada minuto |
| */5 * * * * | Cada 5 minutos |
| */15 * * * * | Cada 15 minutos |
| */30 * * * * | Cada media hora |
| 0 * * * * | Cada hora |
| 0 */2 * * * | Cada 2 horas |
| 0 */6 * * * | Cada 6 horas |
| 0 */12 * * * | Dos veces al día |
| 0 0 * * * | Todos los días a medianoche |
| 0 9 * * * | Todos los días a las 9 de la mañana |
| 0 9 * * 1-5 | De lunes a viernes a las 9 de la mañana |
| 0 9 * * 6,0 | Sábado y domingo a las 9 |
| 0 0 * * 1 | Todos los lunes a medianoche |
| 0 18 * * 5 | Todos los viernes a las 6 de la tarde |
| 0 0 1 * * | Primer día del mes |
| 0 0 1 1 * | Primer día del año |
Qué significa cada campo
| Campo | Valores admitidos |
|---|---|
| Minuto | 0 – 59 |
| Hora | 0 – 23 |
| Día del mes | 1 – 31 |
| Mes | 1 – 12, JAN – DEC |
| Día de la semana | 0 – 6, SUN – SAT (0 = 7) |
Caracteres especiales
| Carácter | Significado |
|---|---|
| * | cualquier valor |
| , | separa valores en una lista |
| - | un rango de valores |
| / | pasos dentro de un rango |
Atajos
| @yearly, @annually | 0 0 1 1 * |
| @monthly | 0 0 1 * * |
| @weekly | 0 0 * * 0 |
| @daily, @midnight | 0 0 * * * |
| @hourly | 0 * * * * |
| @reboot | — |
No forman parte del cron POSIX, pero casi todas las implementaciones los aceptan.
Lo que suele pillar a la gente
- Cuando el día del mes y el día de la semana están los dos restringidos, cron se ejecuta los días que coinciden con cualquiera de los dos, no con ambos. "* * 3 * 1" se ejecuta el día 3 del mes y todos los lunes. La excepción es cuando uno empieza por asterisco: "* * */2 * 1" solo se ejecuta en día impar que además sea lunes. El manual de cron lo explica mal.
- Ejecuta el servidor, y cron con él, en UTC. Una programación escrita en una zona con horario de verano se salta una ejecución una vez al año y repite otra en el cambio siguiente.
- El cron estándar no tiene campo para segundos ni para años. Si necesitas esa precisión, cron no es la herramienta.
- Evita @reboot. Depende de cómo se reinició la máquina y de qué servicios estaban listos en ese momento, lo que hace difícil razonar sobre él.
- Una programación que no cabe en cinco campos puede partirse en dos entradas. Para ejecutar algo cada 90 minutos, escribe "0 */3 * * *" y "30 1/3 * * *" una al lado de la otra.
- Escribe el comando con rutas absolutas. Cron se ejecuta con un PATH muy corto y casi ninguna de las variables de entorno que tiene tu shell.
Preguntas frecuentes sobre expresiones cron
¿Qué significan los cinco campos?
En este orden: minuto, hora, día del mes, mes y día de la semana. Un campo con asterisco admite cualquier valor.
¿El domingo es 0 o 7?
Los dos. La mayoría de las implementaciones admite 0 y 7 para el domingo, y también los nombres de tres letras, de SUN a SAT.
¿Por qué no se ejecutó mi tarea a la hora que esperaba?
Las razones habituales son que el servidor esté en otra zona horaria, la regla de día del mes con día de la semana explicada arriba, o que el comando falle porque cron no carga el perfil de tu shell.
¿Esta página envía mi expresión a algún sitio?
No. La expresión se lee y las ejecuciones se calculan en tu navegador; no se envía nada.