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]
- Minuto: Indica o minuto da hora para a execução do comando, de 0-59.
- Hora: Especifica a hora para a execução do comando no formato de 24 horas (0-23).
- Dia: Define o dia do mês para a execução do comando, de 1-31.
- Mês: Determina o mês para a execução do comando, de 1-12/JAN-DEZ (janeiro a dezembro).
- 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 * *