Como Validar Expressões Cron: Um Guia Passo a Passo
Como Validar Expressões Cron
As expressões cron são compactas, mas fáceis de errar. Uma barra mal posicionada ou um valor fora do intervalo pode fazer com que um trabalho seja executado no horário errado — ou nem seja executado. Validar expressões antes da implantação economiza horas de depuração quando uma tarefa crítica falha silenciosamente.
Erros de Sintaxe Comuns
Valores Fora do Intervalo
Cada campo aceita um intervalo específico. Valores fora desse intervalo são inválidos.
# Invalid: minute 60 is out of range (0-59)
60 * * * *
# Invalid: hour 24 is out of range (0-23)
0 24 * * *
Campos Ausentes
Uma expressão cron requer exatamente cinco campos. Quatro campos é inválido; seis campos exige sintaxe estendida.
# Invalid: only 4 fields (missing day of week)
0 0 * *
# Invalid: 6-field syntax without proper daemon support
0 0 * * * * /command.sh
Conte sempre: minuto, hora, dia do mês, mês, dia da semana.
Valores de Passo Incorretos
# Invalid: cannot step by 0
*/0 * * * *
# Invalid: step exceeds field maximum
*/61 * * * *
Os valores de passo devem começar em 1 e não exceder o máximo do campo.
Como Validar uma Expressão Cron
Etapa 1: Dividir em Campos
Divida pelos espaços e verifique se há exatamente cinco campos:
Expression: 30 6 * * 1-5
Fields: minute=30, hour=6, day=*, month=*, weekday=1-5
Etapa 2: Validar Cada Campo
| Campo | Intervalo Permitido | Aceita Caracteres Especiais |
|-------|---------------------|-----------------------------|
| Minuto | 0-59 | * , - / |
| Hora | 0-23 | * , - / |
| Dia do Mês | 1-31 | * , - / |
| Mês | 1-12 | * , - / |
| Dia da Semana | 0-7 | * , - / |
Etapa 3: Verificar Conflitos
Algumas expressões são sintaticamente válidas, mas logicamente surpreendentes:
# Runs on the 15th OR every Sunday — an OR condition
0 0 15 * 0
O dia do mês e o dia da semana juntos criam uma condição OU no cron padrão. O trabalho é executado quando um dos dois corresponde.
Etapa 4: Pré-visualizar os Próximos Horários
Gere horários de execução para verificar visualmente seu agendamento:
Expression: 0 2 * * 1
Next 5 executions:
1. 2026-07-27 02:00:00 (Monday)
2. 2026-08-03 02:00:00 (Monday)
3. 2026-08-10 02:00:00 (Monday)
Se a pré-visualização não corresponder à sua intenção, corrija a expressão antes da produção.
Depurando Trabalhos Que Não São Executados
Uma expressão válida que não é executada geralmente é um problema do sistema:
- Permissões — o script deve ter permissão de execução (
chmod +x). - Caminho — o cron usa um PATH mínimo. Use sempre caminhos absolutos:
/usr/local/bin/mybackup.shem vez demybackup.sh. - Ambiente — o cron não carrega perfis de shell. Exporte variáveis dentro do crontab ou do próprio script.
- Registro de logs — redirecione a saída para confirmar a execução:
0 6 * * * /path/to/script.sh >> /var/log/cron.log 2>&1
Usando a Ferramenta Validadora
O validador de expressões cron oferece três funções:
- Validação de sintaxe — feedback imediato sobre os valores dos campos e a formatação.
- Pré-visualização do agendamento — veja os próximos horários de execução a partir da data atual.
- Calendário visual — execuções agendadas plotadas em um calendário mensal.
Nenhuma expressão cron deve ser implantada sem pré-visualizar os próximos horários de execução. Uma verificação de trinta segundos evita falhas silenciosas de agendamento.