Sintaxis de Crontab

Antes de configurar trabajos cron, es esencial comprender la sintaxis y el formato de cron para asegurar una ejecución fluida del script. La sintaxis de crontab abarca cinco campos, cada uno aceptando valores específicos


   # ┌───────────── minuto (0 - 59)
   # │ ┌───────────── hora (0 - 23)
   # │ │ ┌───────────── día del mes (1 - 31)
   # │ │ │ ┌───────────── mes (1 - 12)
   # │ │ │ │ ┌───────────── día de la semana (0 - 6) (domingo a sábado)
   # │ │ │ │ │
   # │ │ │ │ │
   # │ │ │ │ │
   # * * * * * [comando a ejecutar]
  1. Minuto: Indica el minuto de la hora para la ejecución del comando, con un rango de 0-59.
  2. Hora: Especifica la hora para la ejecución del comando en formato de 24 horas (0-23).
  3. Día: Establece la fecha del mes para la ejecución del comando, con un rango de 1-31.
  4. Mes: Determina el mes para la ejecución del comando, con un rango de 1-12/ENE-DIC (representando enero a diciembre).
  5. Día de la semana: Establece el día de la semana para la ejecución del comando, con un rango de 0-6/DOM-SÁB, donde 0 representa domingo-sábado, y en algunos sistemas, 7 representa domingo.

Además de entender la sintaxis, es fundamental familiarizarse con los operadores de trabajos cron para modificar los valores en cada campo:

  • Asterisco (*): Representa todos los valores posibles en un campo. Por ejemplo, usar * en el campo de Minuto programa el trabajo cron para ejecutarse cada minuto.
  • Coma (,): Un operador para listar múltiples valores. Por ejemplo, escribir 1,5 en el campo de día de la semana programará el trabajo para ejecutarse todos los lunes y viernes.
  • Guion (-): Especifica un rango de valores. Por ejemplo, usar 6-9 en el campo de Mes configura un trabajo cron de junio a septiembre.
  • Separador (/): Divide un valor. Para ejecutar un script cada doce horas, usa */12 en el campo de Hora.
  • Último (L): Utilizado en los campos de día del mes y día de la semana, donde, por ejemplo, 3L en el campo de día de la semana significa el último miércoles del mes.
  • Día de la semana (W): Determina el día de la semana más cercano a un tiempo dado. Por ejemplo, 1W en el campo de día del mes ejecutará el comando el lunes, 3º, si el 1º del mes cae en sábado.

Cadenas Especiales de Trabajos Cron

Las cadenas especiales se utilizan para programar rápidamente trabajos cron en ciertos intervalos de tiempo sin especificar los valores exactos. Para usarlas, escribe una frase simple comenzando con un @. Aquí hay algunas cadenas especiales útiles para usar en los comandos:

  • @hourly: El trabajo se ejecutará una vez por hora.
  • @daily / @midnight: Estas cadenas ejecutarán la tarea todos los días a medianoche.
  • @weekly: Una cadena para programar tareas una vez por semana a medianoche del domingo.
  • @monthly: Esta cadena especial ejecuta un comando una vez el primer día de cada mes.
  • @yearly: Usa esta cadena para ejecutar una tarea una vez al año a medianoche del 1 de enero.

Ejemplos de Crontab

En la sintaxis cron, el asterisco (*) significa ‘cada,’ por lo que las siguientes cadenas cron son válidas:

  • Ejecutar una vez por hora al comienzo de la hora: 0 * * * *
  • Ejecutar una vez al día a medianoche: 0 0 * * *
  • Ejecutar una vez por semana a medianoche el domingo por la mañana: 0 0 * * 0
  • Ejecutar una vez al mes a medianoche del primer día del mes: 0 0 1 * *
  • Ejecutar una vez al mes el día 22: 0 0 22 * *
  • Ejecutar una vez al mes el segundo lunes: 0 0 * * 1#2
  • Ejecutar una vez al año a medianoche del 1 de enero: 0 0 1 1 *
  • Ejecutar cada dos domingos a las 0900 horas: 0 9 * * sun/2
  • Ejecutar dos veces al mes a las 3 AM, el 1º y el 15º del mes: 0 3 1,15 * *