Como o cron manipula os remanescentes nos trabalhos “de vez em quando”

13

Se eu fizer isso:

*/9 * * * * /path/to/wotnot

Em que horas a tarefa será executada em duas horas, a partir das 09h00

É A:

09h00
09h09
09h18
09h27
09h36
09h45
09h54
10h03
10h12
10h21
10h30
10h39
10h48
10h57

ou B:

09h00
09h09
09h18
09h27
09h36
09h45
09h54
10h00
10h09
10h18
10h27
10h36
10h45
10h54
    
por Jesse 10.01.2013 / 15:12

2 respostas

31

Ao olhar para um intervalo, você o interpreta somente dentro dessa coluna, então '* / 9' dentro da coluna de minutos significa "listar a cada minuto, depois selecionar cada nono valor". Essa seleção é redefinida no início da hora, portanto, você reinicia em xx: 00, xx: 09, xx: 18, etc a cada hora.

Ele também pode ser lido como "a cada nove minutos de cada hora", o que implica a redefinição no topo da hora.

Assim, o comportamento real que você verá corresponde à opção B.

    
por 10.01.2013 / 15:28
22

Para confirmar a resposta de João, */n na coluna de minutos significa "quando o minuto é 0 mod n". Aqui está uma entrada crontab :

*/7 * * * *  date >> /tmp/foo

e aqui está a saída:

Thu Jan 10 14:49:01 GMT 2013
Thu Jan 10 14:56:01 GMT 2013
Thu Jan 10 15:07:01 GMT 2013

Observe que a diferença entre as duas últimas vezes é não sete minutos, porque depois de nn: 56 a próxima vez que */7 corresponde é 'nn + 1: 07.

Sim, estou ciente de que esses tempos estão no futuro (ou foram quando postei isso); Eu tive que empurrar o relógio do sistema para frente um pouco rápido para obter uma resposta rápida.

    
por 10.01.2013 / 15:39

Tags