Conflito entre dia da semana e dia, mal-entendidos com intervalos, tarefas sobrepostas
1. Confusão com o número do dia da semana — no cron, o dia da semana vai de 0 a 6, sendo 0 o domingo. Muitas implementações também aceitam o 7 como domingo, mas é comum confundir o 1 com o domingo e atrasar tudo em um dia. A segunda-feira é 1 e a sexta-feira é 5.
2. Especificar dia do mês (day-of-month) e dia da semana (day-of-week) juntos — se você definir ambos os campos com um valor diferente de *, a maioria dos crons executa quando qualquer um dos dois coincidir (OR, e não AND). Exemplo: 0 0 13 * 5 é executado 'no dia 13 ou em toda sexta-feira'. Não é 'apenas na sexta-feira 13'.
3. Mal-entendido com o intervalo */n — */15 executa a partir do 0 em intervalos de 15, ou seja, nos minutos 0·15·30·45. Se você usar um valor que não divide 60 igualmente, como */40, ele executa apenas nos minutos 0 e 40 e depois salta para o minuto 0 da hora seguinte, tornando o intervalo irregular.
4. Engano com o fuso horário — o cron geralmente opera no fuso horário do servidor (normalmente UTC). Se você escrever a expressão com base no horário local, ela será executada em um horário diferente na prática. Os fusos horários são tratados em detalhe no guia separado abaixo.
5. Tarefas sobrepostas — se o tempo de execução ultrapassar o próximo horário agendado, uma nova tarefa pode começar antes de a anterior terminar. Para tarefas demoradas, é mais seguro adicionar um bloqueio (lock) ou uma proteção contra execução duplicada. Valide a expressão que você escreveu antecipadamente com os próximos horários de execução da ferramenta acima.