como fazer um cron job especial?

como fazer um cron job especial?

preciso fazer um cron job para executar um programa java a cada 40 minutos no servidor unix. considerando que: 1) deverá funcionar das 8h30 às 12h30 e das 14h às 18h de segunda a sexta 2) considerar feriados.

Eu li muito sobre isso e encontrei isso */30 8..13,14..19 * * 1..5 como a solução mais próxima. quero saber se o crontab pode fazer o que eu quero e, caso contrário, é possível corrigir um java ou qualquer outro código para verificar a data do feriado. Obrigado pela ajuda

Responder1

CRON não é tão inteligente, você precisará ter muitas regras semelhantes ou escrever algo um pouco mais personalizado para fazer isso por você (mas tenha cuidado, você não quer escrever um script que execute coisas fornecidas pelo usuário como root sem tomar cuidado especial, você não quer escrever um script que faça esse ponto final)

Responder2

Como James disse, cron não é tão inteligente: é bom em "Faça essas coisas nessas horas, repetidamente até que eu diga para você parar", mas não vai seguir feriados flutuantes ou ficar entusiasmado com "funky" horários como every 40 minutes(requer um monte de entradas do crontab para fazer algo assim - você precisa criar uma para cada execução).

Provavelmente é melhor você chegar "o mais próximo possível" do cron (ou seja, sua regra acima, que é "Executar a cada meia hora na marca HH: 30" dentro das restrições da parte 1) e, em seguida, fazer com que seu script verifique o exceções (feriados) por conta própria e decidir se deve ou não prosseguir.

Responder3

Pode ser um exagero para o que você deseja, mas você pode usar o Hudson para executar os trabalhos. Por si só, você não conseguirá executar imediatamente os trabalhos usando suas regras de tempo, mas poderá acionar trabalhos remotamente por vários métodos. Portanto, se você pode escrever um script para alterar o conteúdo de uma página da Web ou criar novos arquivos ou fazer uma chamada REST para Hudson ou fazer um check-in no git sempre que quiser que o trabalho seja executado, você está com sorte. Você também obtém um registro melhor do que apenas o cron e é fácil ser alertado sempre que o trabalho falhar (por e-mail, jabber, irc, nabaztag...)

Olhando para isso de outra perspectiva. Você realmente precisa que ele seja executado dentro das regras especificadas? O que acontece se você executá-lo a cada meia hora? O que acontece se você executá-lo em momentos indesejados?

informação relacionada