Entrada Crontab com intervalo de horas que passa da meia-noite


18

Esta especificação de tempo do crontab é válida, fazendo o que é esperado:

0 22-4 * * *

Ou é necessário fazer algo como

0 22,23,0,1,2,3,4 * * *

Respostas:


5

Nunca tentei usar um intervalo como esse e não tenho certeza se funcionaria. Portanto, meu primeiro conselho seria testá-lo e ver o que acontece - embora provavelmente com um script que faça apenas uma entrada de log ou algo mais inócuo.

Segundo, para ATT e BSD cron, você não pode ter intervalos e listas coexistentes; portanto, é necessário listar cada hora separadamente ou ter duas linhas, uma com o intervalo e outra com a lista.


Pergunta modificada para ser válida no ATT / BSD por sua resposta. Na verdade, estou escrevendo "my" crontab spec na configuração do trabalho de Jenkins (e testarei essa noite com trabalho simulado), mas estou pedindo aqui para saber qual é o comportamento esperado no sistema Unix / Linux.
Hyde

Na verdade, eu esperaria que não funcionasse e ficaria agradavelmente surpreendido se funcionasse. Mas também esperaria que o cron reclamasse se você inserir um intervalo inválido.
Jenny D

11

Tive problemas ao executar cronjobs à meia-noite. Acabei colocando duas entradas quase idênticas para os scripts envolvidos.

* 22-00 * * * /myscript
* 00-05 * * * /myscript

isso pareceu fazer o truque.
Eu estava enfrentando falhas no cron por causa do uso 22-05 e, por processo de eliminação, surgiu com esta solução.


Apenas uma observação, parece que não funciona */5, ou seja:*/5 00-05 * * * /myscript
dentex 27/10

8

Há uma grande variedade de daemons cron por aí, a menos que você diga qual deles está usando (o manuseio de listas nesses casos de canto pode muito bem mudar de uma versão para a próxima), não pode haver uma resposta. A melhor aposta é ir com sua lista explícita. Eu não ficaria muito surpreso se alguma implementação considerar seu envolvimento como uma maneira estranha de dizer 4-22...

A documentação local menciona esse tipo de caso? Talvez seja legal ter duas listas, por exemplo 22-24,1-4?


8
Posso confirmar que 22-23,0-4(note que o crontab não 24funciona) funciona perfeitamente, pelo menos nos centos em que o testei.
qwertyboy
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.