In che modo cron gestisce i resti nei lavori "ogni tanto"


13

Se lo faccio:

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

A che ora l'attività verrà eseguita in due ore, a partire dalle 09:00

E 'un:

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

o B:

09h00
09h09
09h18
09h27
09h36
09h45
09h54
10h00
10h09
10h18
10h27
10h36
10h45
10h54

Risposte:


31

Quando guardi un intervallo, lo interpreti solo all'interno di quella colonna, quindi '* / 9' nella colonna dei minuti significa "elenca ogni minuto, quindi seleziona ogni nono valore". Questa selezione viene ripristinata all'inizio dell'ora, quindi riavvii alle ore xx: 00, xx: 09, xx: 18, ecc. Ogni ora.

Può anche essere letto come "ogni nove minuti ogni ora", il che implica il ripristino nella parte superiore dell'ora.

Quindi il comportamento effettivo che vedrai corrisponde all'opzione B.


Questa è l'unica risposta che sembra effettivamente rispondere alla domanda. Hai provato questo per essere sicuro?
Gparent

Negli ultimi 10 minuti? No. Negli ultimi tre mesi? Sì, anche se non specificamente a intervalli di nove minuti.
Giovanni

Non vedo perché mi importerebbe quando l'hai fatto, ma solo se. Grazie.
Gparent

1
Ho fatto incazzare ex colleghi per "no, non l'hai provato, ti affidi alla tua memoria difettosa!" in situazioni simili (ovviamente, 5 minuti dopo se ne vanno infastiditi dopo che ho dimostrato che funziona ancora), quindi ho preso l'abitudine di proteggermi in anticipo.
Giovanni

2
Il primo passo nel test è quello di assicurarti di avere la stessa marca e versione del cliente (in questo caso Jesse). Non vedo alcun indizio qui finora su quale cron sta usando. (Probabilmente Vixie Cron, e questa funzionalità di base è probabilmente stabile tra le versioni di quel programma.)
Kaz

22

Per confermare la risposta di John, */nnella colonna dei minuti significa "quando il minuto è 0 mod n". Ecco una crontabvoce:

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

ed ecco l'output:

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

Nota che il divario tra le ultime due volte non è di sette minuti, perché dopo nn: 56 la prossima volta le */7partite sono `nn + 1: 07.

Sì, sono consapevole che quei tempi sono nel futuro (o lo erano quando l'ho pubblicato); Ho dovuto far avanzare l'orologio di sistema piuttosto velocemente per ottenere una risposta rapida.


5
+1 per lo sforzo :)
Sven
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.