Quero definir uma entrada cronjob que execute um script a cada 30 minutos, das 9h às 18h, mas não quero que seja executado às 18h30. O script deverá ser executado pela primeira vez às 9h e pela última vez às 18h. Isso é possível?
Responder1
0,30 9-18 * * * /path_to_script
No entanto, o acima será executado às 18h30. Então, a melhor aposta é ter um trabalho separado para cuidar das 18h. Então:
0,30 9-17 * * * /path_to_script
0 18 * * * /path_to_script
Também,Geradores de cron jobssão impressionantes.
Responder2
Ou faça um teste extra antes de disparar o script. No exemplo abaixo eu testo se a corrente é menor que 1815.
0,30 9-18 * * * [ $(date +\%H\%M) -le 1815 ] && /path_to_script