O Cronjob é executado antes da hora marcada, o que poderia estar errado?

10

Eu tenho abaixo o crontab programado para o sábado que fica entre os dias 19 e 23, não sei por que ele foi exibido no dia 20 (sexta-feira). Algum palpite?

00 21 19-23 * 6 <command>
    
por simer 23.11.2015 / 12:39

1 resposta

16

Essa expressão Cron se traduz em:

At 21:00 on the 19, 20, 21, 22 and 23rd of every month and every Saturday.

Por isso, explicitamente disse ao cron para rodar na sexta-feira, dia 20. Isso é por causa de:

When the schedule specifies both date and weekday, they're combined with a logical OR,
i.e. the job will run if current_minute == scheduled_minute 
&& current_hour == scheduled_hour && current_month == scheduled_month && 
(current_day == scheduled_date OR current_weekday == scheduled_weekday).

Esta informação é desta útil ferramenta Cron: link

Para que seu trabalho seja executado em determinados dias, quando é sábado, você pode usar:

00 21 19-23 * * test $(date +%u) -eq 6 && command

Esta solução é de crontab dia da semana x dia do mês

    
por 23.11.2015 / 13:03

Tags