Entendendo a sintaxe do cron

LinuxBeginner
Pratique Agora

Introdução

No Linux, automatizar tarefas recorrentes é essencial para a manutenção do sistema. Seja para executar backups diários, limpar arquivos temporários ou gerar relatórios semanais, essas tarefas são gerenciadas por um utilitário do sistema chamado Cron.

O Cron é um agendador de tarefas baseado estritamente em horários. Ele usa uma sintaxe de configuração específica para determinar exatamente quando os comandos devem ser executados. A tabela de configuração costuma ser chamada de "crontab".

O Cron faz parte da cultura Unix há décadas. Muito antes das plataformas modernas de fluxo de trabalho e dos agendadores em nuvem, os administradores usavam o cron para executar backups, tarefas de limpeza, relatórios e rotinas de manutenção em horários previsíveis.

À primeira vista, uma entrada de crontab como 0 2 * * * pode parecer confusa. Neste laboratório, você aprenderá a interpretar e escrever essa sintaxe. Você vai:

  1. Explorar o crontab do sistema: visualizar o arquivo global de configuração do cron.
  2. Decodificar a sintaxe: entender os 5 campos de data e horário.
  3. Definir um agendamento: construir uma expressão cron válida para uma tarefa diária.

Visualizar a tabela cron do sistema

Uma forma rápida de entender a sintaxe do cron é consultar o arquivo de configuração de todo o sistema, /etc/crontab. Esse arquivo geralmente contém um cabeçalho útil que explica a disposição dos campos.

Ele é útil tanto como arquivo de configuração real quanto como referência de aprendizado. Muitos sistemas Linux incluem comentários nesse arquivo porque a sintaxe do cron é compacta e poderosa, mas pode ser fácil de interpretar incorretamente até que você entenda a ordem dos campos.

Execute o comando a seguir para visualizá-lo:

cat /etc/crontab

Na saída, concentre-se na seção Example of job definition (as linhas podem variar um pouco conforme a distribuição):

## .---------------- minute (0 - 59)
## |  .------------- hour (0 - 23)
## |  |  .---------- day of month (1 - 31)
## |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
## |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
## |  |  |  |  |
## *  *  *  *  * user-name command to be executed

O diagrama mostra que cada agendamento do cron é formado por 5 campos, seguidos do comando que deve ser executado:

  1. Minuto (0-59)
  2. Hora (0-23, formato de 24 horas)
  3. Dia do mês (1-31)
  4. Mês (1-12)
  5. Dia da semana (0-7; tanto 0 quanto 7 representam domingo)

O asterisco * é um curinga que significa "todos". Por exemplo, * no campo Mês significa "todos os meses".

As expressões cron são compactas porque cada campo restringe o agendamento. Juntos, os campos descrevem um momento recorrente. Ler os campos da esquerda para a direita como minuto, hora, dia, mês e dia da semana é um dos hábitos mais importantes para desenvolver desde o início.

Exemplo: 17 * * * * significa "No minuto 17 de todas as horas, todos os dias".

Preparar um arquivo de sintaxe

Agora que você entende a estrutura, pratique a escrita de uma entrada.

Você criará um arquivo de texto para definir sua expressão cron. Essa é uma boa prática antes de adicioná-la ao agendador real do sistema.

Essa etapa é importante porque uma entrada do cron é apenas texto simples, mas produz efeitos reais depois de instalada. Escrever a expressão separadamente ajuda você a pensar no agendamento antes de transformá-lo em automação.

Verifique se você está na pasta do projeto:

cd ~/project

Crie um arquivo vazio chamado cron_syntax.txt:

touch cron_syntax.txt

Verifique se ele existe:

ls -l cron_syntax.txt

Escrever a sintaxe de um agendamento diário

Sua tarefa é construir uma expressão cron para uma tarefa que deve ser executada "Todos os dias às 2:00 da manhã".

Veja como dividir esse requisito nos 5 campos:

  1. Minuto: queremos exatamente 2:00. Esse é o minuto 0. Valor: 0.
  2. Hora: queremos 2 da manhã, no formato de 24 horas. Valor: 2.
  3. Dia do mês: queremos que a tarefa seja executada todos os dias do mês. Valor: *.
  4. Mês: queremos que ela seja executada todos os meses do ano. Valor: *.
  5. Dia da semana: queremos que ela seja executada independentemente do dia da semana. Valor: *.

Combinando esses valores, a expressão é: 0 2 * * *.

Acrescente essa sintaxe ao arquivo:

echo "0 2 * * *" >> cron_syntax.txt

Verifique a entrada:

cat cron_syntax.txt

A sintaxe 0 2 * * * informa ao sistema: "Quando o minuto for 0 E a hora for 2, execute o comando."

Este é o modelo mental que você deve manter: o cron compara o horário atual com os cinco campos. Quando o horário atual corresponde ao padrão, o cron inicia a tarefa.

Resumo

Neste laboratório, você aprendeu os fundamentos do agendamento com cron:

  1. Configuração do sistema: você explorou /etc/crontab para ver o formato padrão.
  2. Estrutura dos campos: você identificou os 5 campos: Minuto, Hora, Dia do mês, Mês e Dia da semana.
  3. Escrita de expressões: você criou com sucesso a sintaxe para uma tarefa diária (0 2 * * *).

Entender essa sintaxe é essencial para automatizar qualquer tarefa rotineira em um ambiente Linux.