*/20 * * * *
Garante que ele seja executado a cada 20 minutos. Gostaria de executar uma tarefa a cada 20 minutos, começando às 5 horas da tarde. Isso é possível com Cron? Seria:
5/20 * * * *
?
*/20 * * * *
Garante que ele seja executado a cada 20 minutos. Gostaria de executar uma tarefa a cada 20 minutos, começando às 5 horas da tarde. Isso é possível com Cron? Seria:
5/20 * * * *
?
Respostas:
Para executar uma tarefa a cada 20 minutos, iniciando às 5 horas da tarde, tente o seguinte:
5-59/20 * * * *
Explicação
Um *
campo no minuto é o mesmo que 0-59/1
onde 0-59
está o intervalo e 1
é a etapa . O comando será executado no primeiro minuto no intervalo (0) e, em seguida, em todos os minutos sucessivos que estão distantes do primeiro pelo passo (1) até o último (59).
É por isso que */20 * * * *
será executado em 0 minutos, 20 minutos depois e 40 minutos depois - o que é igual a cada 20 minutos. No entanto, */25 * * * *
será executado em 0 minutos, 25 minutos depois e 50 minutos depois - o que não é o mesmo que a cada 25 minutos. É por isso que geralmente é desejável usar um valor de etapa no campo minuto que se divide igualmente em 60.
Portanto, para compensar a hora de início, especifique explicitamente o intervalo e defina o primeiro valor para a quantidade do deslocamento.
Exemplos
5-59/20 * * * *
será executado 5 minutos depois, 25 minutos depois e 45 minutos depois.
10-59/25 * * * *
será executado 10 minutos depois e 35 minutos depois.
1-59/2 * * * *
será executado a cada minuto ímpar.
Certo!
5,25,45 * * * * /your/cron
5-59/20
é possível, mas 5,25,45
tem a vantagem de ficar imediatamente claro o que isso faz.
Podes tentar: */5 * * * * sleep N; your job
sleep `shuf -i 1-100 -n 1`
faz o truque.