O terceiro campo cron não parece funcionar (o job é executado quando não quero)

1

Eu agendei um trabalho como este:

*   *    6-8  *  1-5  echo "test" >>/tmp/test.log 2>&1

Espero que este trabalho seja executado apenas nos dias 6, 7 e 8, nesses três dias. mas hoje é dia 18, ainda funciona. O que há de errado com este trabalho? O que devo fazer se eu quiser que ele execute alguns dias específicos?

    
por David Dai 18.02.2013 / 02:28

2 respostas

4

As posições de dia do mês e de dia da semana são OR'd, portanto, no seu exemplo, o cron será executado no 6º, 7º ou 8º ou < Segunda a sexta-feira. Desde o dia 18 é uma segunda-feira, ele é executado. Não é exatamente intuitivo.

Para obter o comportamento que eu acho que você deseja (corra nos dias 6, 7 e 8 se eles são um dia da semana), então você pode fazer algo assim:

* * * * 1-5 date '+%d' | grep '[678]' && echo "test" >>/tmp/test.log 2>&1
    
por 18.02.2013 / 02:49
2

A especificação do dia do mês (campo-3; um relativo) e o campo do dia do mês (5) são especificados. Nesse caso, uma correspondência para qualquer um significa que seu crontab é executado.

    
por 18.02.2013 / 02:50

Tags