Generador de crontab

Elige Linux, Spring o Quartz, arma el horario y copia la expresión o la línea completa. Explicar una expresión que ya tienes

Explicar una expresión que ya tienes

Una línea de crontab a partir de un horario

Esta página arma un crontab de Linux: cinco campos, o un atajo como @daily. Eliges cada cuánto debe correr, puedes añadir el comando y copias la línea. No instala la tarea. Formato también escribe Spring y Quartz: los segundos 0 delante, y en Quartz un ? con nombres como MON-FRI. Para explicar una expresión que ya tienes, usa Explicar una expresión que ya tienes. Las marcas de tiempo son marca de tiempo Unix.

Cómo se usa

  1. Formato es Linux Crontab (5), Spring @Scheduled (6) o Quartz (6–7). La línea bajo el menú dice el orden de los campos y qué número es el domingo. Horario abre en Cada día. Hora es 2 y Minuto es 0, así que la expresión es 0 2 * * * y la frase dice cada día a las 02:00.
  2. Horario puede ser Cada minuto, Cada N minutos, Cada hora, Cada N horas, Cada día, Días de la semana, Día del mes, Una vez al año o Atajo (@daily). Cada N minutos muestra Cada y la palabra minutos. Cada hora muestra Minuto. Cada N horas muestra Minuto y Cada, con la palabra horas. Cada día muestra Hora y Minuto. Días de la semana muestra Hora, Minuto y los botones de lunes a domingo; al menos uno debe estar activo. Día del mes muestra Hora, Minuto y Día. Una vez al año también muestra Mes. Atajo lista @reboot, @hourly, @daily, @weekly, @monthly y @yearly. Esos atajos solo aparecen si Formato es Linux. Spring y Quartz conservan la misma hora y añaden los segundos.
  3. Comando puede quedar vacío. /usr/bin/backup.sh se coloca después de la expresión en Línea de crontab. Actualizar al escribir está marcado. Si se quita, Generar corre una vez.
  4. Copiar expresión copia los cinco campos o el atajo. Copiar línea copia la expresión más el comando. Copiar resultado copia la frase y Próximas 10 ejecuciones. Mostrar ejemplo pone Días de la semana en lunes–viernes a las 02:00 y el comando /usr/bin/backup.sh. La expresión es 0 2 * * 1-5 y la línea 0 2 * * 1-5 /usr/bin/backup.sh. Los botones bajo el formulario cargan más: cada 15 minutos */15 * * * *, cada día a las 02:00 con el mismo comando 0 2 * * * /usr/bin/backup.sh, días laborables a las 09:00 0 9 * * 1-5, fin de semana a las 09:00 0 9 * * 0,6, lunes miércoles y viernes a las 09:00 0 9 * * 1,3,5, el día 1 a medianoche 0 0 1 * *, el 1 de enero 0 0 1 1 *, cada 2 horas en el minuto 30 30 */2 * * *, @daily, @weekly (domingo a las 00:00) y @reboot. El enlace de al lado abre la explicación. Borrar todo pone Cada minuto y vacía el comando. La expresión es * * * * *.

Qué significan los campos

La expresión es minuto, hora, día del mes, mes, día de la semana. El domingo es 0, el lunes es 1, el sábado es 6. Los días seguidos llevan un guion, así que lunes–viernes es 1-5. Los días sueltos llevan comas, como 1,3,5. Los siete días pasan a *. Formato Linux escribe esos cinco campos. Formato Spring pone 0 delante para los segundos y mantiene los números del día. Formato Quartz pone 0 delante, escribe ? en el día o en el día de la semana, y convierte los números en SUN–SAT, porque Quartz numera el domingo como 1.

Cada N minutos es */N * * * *. Cada N horas es el minuto M de las horas 0, N, 2N y así: M */N * * *. El día 31 solo corre en los meses que tienen 31. Febrero se salta. El comando no se comprueba. Va en una línea. La página no instala la tarea.

@reboot corre al arrancar y no tiene hora, así que no hay Próximas 10 ejecuciones. @hourly es 0 * * * *. @daily es 0 0 * * *. @weekly es el domingo a las 00:00, 0 0 * * 0, no el lunes. @monthly es 0 0 1 * *. @yearly es 0 0 1 1 *. La frase dice Igual que y esos cinco campos. Próximas 10 ejecuciones usa la hora local de este equipo. La máquina que ejecuta crontab puede estar en otra zona.

Dónde se usa

  • Una copia cada día a las 02:00: 0 2 * * * /usr/bin/backup.sh.
  • Un trabajo de días laborables a las 09:00: 0 9 * * 1-5.
  • @daily cuando la medianoche de esa máquina es la hora correcta.

Preguntas

¿Por qué @weekly es el domingo?

Vixie cron define @weekly como el domingo a las 00:00. Para el lunes, elige Días de la semana y activa lunes. Si la hora sigue en 00:00, la expresión es 0 0 * * 1.

¿Esto genera una expresión Quartz?

Sí. Pon Formato en Quartz. Cada día a las 02:00 pasa a 0 0 2 * * ?. Lunes–viernes pasa a MON-FRI. Explicar una expresión que ya tienes sigue leyendo la expresión que pegas.

La próxima ejecución no coincide con UTC.

Próximas 10 ejecuciones usa el reloj de este equipo. Un crontab en un servidor usa la zona del servidor.

El día 31 no sale en febrero.

Ese mes no tiene día 31, así que se salta. La lista muestra el próximo mes que sí lo tiene.