Você deve usar 0 */2 * * *
para executar o trabalho a cada 2 horas
Eu criei uma tarefa cron usando * */2 * * *
schedule. Alguém pode me dizer a que programação isso se refere?
Eu acho que deve ser executado a cada 2 horas, mas parece ser executado a cada minuto.
Você deve usar 0 */2 * * *
para executar o trabalho a cada 2 horas
É assim que um cron job é apresentado:
minute (0-59), hour (0-23, 0 = midnight), day (1-31), month (1-12), weekday (0-6, 0 = Sunday), command
Um asterisco (*) pode ser usado para que todas as ocorrências (todas as horas, todos os dias da semana, todos os meses, etc.) de um período de tempo sejam usadas.
então use 0 */2 * * *
, então isso acontecerá a cada 2 horas, todos os dias e todos os meses ...
Os trabalhos Cron serão executados sempre que houver uma condição de correspondência na especificação de tempo. Um asterisco ( *
) significa "todos".
Então, o que você tem com sua especificação de tempo é:
* */2 * * *
Os campos são:
Então, o que você especificou em inglês é "executar uma vez por minuto durante as horas numeradas" . Soa meio bobo, mas cron
obedecerá fielmente.
Para que seja executado apenas uma vez, a cada duas horas você precisa definir o campo de minuto para um número específico. Qualquer número 0
- 60
é bom, mas o que você não quer é *
.
Como muitas pessoas já sugeriram, o seguinte provavelmente está mais próximo do que você deseja:
0 */2 * * *
Eu acredito que você queira 0 */2 * * *
. Veja a diferença? O que você provavelmente corre a cada minuto a cada hora.
Colocar seu cronjob assim fará com que ele seja executado a cada minuto (primeiro *
) de cada hora dividida por 2 (o */2
), o que significa que ele executa todas as horas iguais, a hora inteira. De 2:00 - 2:59
, 4:00 - 4:59
, 6:00 - 6:59
, 8:00 - 8:59
, 10:00 - 10:59
e 12:00 - 12:59
AM e PM.
Se você quiser executá-lo a cada 2 horas, coloque explicitamente o contador de minutos em 0
, então:
0 */2 * * * user /some/command/here
.