crontab dia da semana vs. dia do mês?

13

Eu adicionei isso ao / etc / crontab em alguns linux & sistemas freebsd:

# monthly reboot: 3rd Tuesday of every month
56 07 15-21 * 2 root /sbin/shutdown -r now

Eu quero uma reinicialização no terceiro TERÇA-FEIRA de todos os meses. No entanto, todos os sistemas foram reinicializados na terceira quarta-feira deste mês (19).

O que estou fazendo de errado?

Atualização : Graças à resposta de Ranon abaixo, parece que a revisão abaixo funcionará, alguém pode confirmar ou existe uma maneira ainda melhor de fazê-lo?

# monthly reboot: 3rd Tuesday of every month
56 07 15-21 * * root test $(date +\%u) -eq 2 && /sbin/shutdown -r now
    
por ane 19.10.2011 / 16:19

1 resposta

13

Dê uma olhada em man 5 crontab .

Note: The day of a command's execution can be specified by two fields — day of month, and day of week. If both fields are restricted (i.e., aren't *), the command will be run when either field matches the current time. For example, ''30 4 1,15 * 5'' would cause a command to be run at 4:30 am on the 1st and 15th of each month, plus every Friday. One can, however, achieve the desired result by adding a test to the command (see the last example in EXAMPLE CRON FILE below).

Assim, seus servidores devem reiniciar todos os dias de 15 a 21 E todas as terças-feiras.

Veja o exemplo das páginas de trabalho:

# Run on every second Saturday of the month
0 4 8-14 * *    test $(date +%u) -eq 6 && echo "2nd Saturday"
    
por 19.10.2011 / 17:25