Sintaxe do crontab

Antes de configurar tarefas cron, é essencial compreender a sintaxe e a formatação do cron para garantir uma execução tranquila dos scripts. A sintaxe do crontab abrange cinco campos, cada um aceitando valores específicos.

            # ┌───────────── minuto (0 - 59)
            # │ ┌───────────── hora (0 - 23)
            # │ │ ┌───────────── dia do mês (1 - 31)
            # │ │ │ ┌───────────── mês (1 - 12)
            # │ │ │ │ ┌───────────── dia da semana (0 - 6) (domingo a sábado)
            # │ │ │ │ │
            # │ │ │ │ │
            # │ │ │ │ │
            # * * * * * [comando a executar]
  1. Minuto: Indica o minuto da hora para a execução do comando, de 0-59.
  2. Hora: Especifica a hora para a execução do comando no formato de 24 horas (0-23).
  3. Dia: Define o dia do mês para a execução do comando, de 1-31.
  4. Mês: Determina o mês para a execução do comando, de 1-12/JAN-DEZ (janeiro a dezembro).
  5. Dia da semana: Define o dia da semana para a execução do comando, de 0-6/DOM-SÁB, onde 0 representa domingo a sábado e, em alguns sistemas, 7 também representa domingo.

Além de compreender a sintaxe, é indispensável conhecer os operadores das tarefas cron para modificar os valores em cada campo:

  • Asterisco (*): Representa todos os valores possíveis num campo. Por exemplo, usar * no campo dos minutos agenda a tarefa cron para ser executada a cada minuto.
  • Vírgula (,): Um operador para listar vários valores. Por exemplo, escrever 1,5 no campo do dia da semana agenda a tarefa para ser executada todas as segundas e sextas-feiras.
  • Hífen (-): Especifica um intervalo de valores. Por exemplo, usar 6-9 no campo do mês configura uma tarefa cron de junho a setembro.
  • Barra (/): Divide um valor. Para executar um script a cada doze horas, use */12 no campo das horas.
  • Last (L): Utilizado nos campos de dia do mês e dia da semana; por exemplo, 3L no campo do dia da semana significa a última quarta-feira do mês.
  • Weekday (W): Determina o dia útil mais próximo de uma data. Por exemplo, 1W no campo do dia do mês executa o comando na segunda-feira dia 3, se o dia 1 do mês cair num sábado.

Expressões especiais de tarefas cron

As expressões especiais são utilizadas para agendar rapidamente tarefas cron em determinados intervalos sem especificar os valores exatos. Para usá-las, escreva uma expressão simples a começar por @. Eis algumas expressões especiais úteis:

  • @hourly: A tarefa é executada uma vez por hora.
  • @daily / @midnight: Estas expressões executam a tarefa todos os dias à meia-noite.
  • @weekly: Uma expressão para agendar tarefas uma vez por semana, à meia-noite de domingo.
  • @monthly: Esta expressão especial executa um comando uma vez no primeiro dia de cada mês.
  • @yearly: Use esta expressão para executar uma tarefa uma vez por ano, à meia-noite de 1 de janeiro.

Exemplos de crontab

Na sintaxe cron, o asterisco (*) significa "a cada", pelo que as seguintes expressões cron são válidas:

  • Executar uma vez por hora, no início da hora: 0 * * * *
  • Executar uma vez por dia à meia-noite: 0 0 * * *
  • Executar uma vez por semana à meia-noite de domingo: 0 0 * * 0
  • Executar uma vez por mês à meia-noite do primeiro dia do mês: 0 0 1 * *
  • Executar uma vez por mês no dia 22: 0 0 22 * *
  • Executar uma vez por mês na 2.ª segunda-feira: 0 0 * * 1#2
  • Executar uma vez por ano à meia-noite de 1 de janeiro: 0 0 1 1 *
  • Executar a cada dois domingos às 09h00: 0 9 * * sun/2
  • Executar duas vezes por mês às 3h00, nos dias 1 e 15 do mês: 0 3 1,15 * *