Cron job para executar a cada minuto, das 23h às 6h

4

Eu tenho um programa python que preciso executar a cada minuto, das 23h (EDT) às 06h (EDT). Como posso agendar um cron job para fazer isso?

* 23-6 * * 1-5 python my_program.py

isso funcionará? ou eu tenho que escrever 2 trabalhos cron separados para isso?

    
por Chiyaan Suraj 18.05.2015 / 12:00

3 respostas

9

Os intervalos que envolvem assim são ambíguos. Especifique as horas como 23,0-6 e evite problemas futuros.

Cron verifica cada minuto o conteúdo dos arquivos crontab e se ele encontrar a coincidência do tempo e as condições em que executará o script indicado na linha.

Para este caso, trata-se do conjunto de coincidências que devem ser atendidas:

  • Das 23h às 23h59 e das 0h às 6h59
  • De segunda a sexta

Assim, a cada minuto durante o tempo em que o conjunto de coincidências é verdadeiro, ele será executado.

Não espere que ele seja executado fora do intervalo de horas e dias indicado, por exemplo, em sábado .

    
por 18.05.2015 / 12:28
4

Sua agenda como definida é ambígua, especialmente porque há várias implementações cron diferentes disponíveis nos sistemas Unix / Linux. Recomendamos enfaticamente que você especifique dois intervalos para satisfazer a duração da meia-noite (mas observe que, de acordo com a entrada do Crontab com intervalo de horas passando a meia-noite , as implementações AT & T / BSD cron não podem lidar com listas de intervalos).

No entanto, talvez mais importante, sua definição executará seu programa a cada minuto, das 23:00 (11pm) até 0659 (6,59am), o que é quase uma hora mais tarde do que o necessário. Ele também será executado apenas enquanto o dia for de segunda a sexta-feira ( 1-5 ). Se você quiser que o script seja executado a partir das 11h da noite de segunda-feira, mas parando às 6h da manhã de sábado, precisará dessas entradas:

* 23  * * 1-5 python my_program.py    # 11pm-midnight Mon-Fri
* 0-5 * * 2-6 python my_program.py    # midnight-5.59am Tue-Sat
0 6   * * 2-6 python my_program.py    # 6am Tue-Sat

Por fim, esteja ciente de que cron geralmente é executado usando o fuso horário padrão do sistema, que pode não ser necessariamente o fuso horário que você está usando de forma interativa. Alguns testes podem ser necessários para garantir que as 11h00 às 6h da manhã coincidam com a ideia de cron das 11h às 6h.

    
por 19.05.2015 / 11:48
1

Isso executará seu trabalho a cada minuto das 23h às 06:59 nos dias 1 a 5 da semana.

Aqui 1 == > Segunda e 5 == > Sexta-feira.

No entanto, o cron irá verificar se todas as condições estão satisfeitas e na sexta-feira, irá parar a meia-noite, já que o sábado não está incluído nos dias. Em todos os outros dias, funcionará bem.

    
por 18.05.2015 / 12:07

Tags