¿Cómo maneja cron los residuos en trabajos "cada cierto tiempo"?

13

Si hago esto:

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

A qué horas se ejecutará la tarea en dos horas, a partir de las 09h00

Es una:

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
Jesse
fuente

Respuestas:

31

Cuando observa un rango, lo interpreta dentro de esa columna, por lo que '* / 9' dentro de la columna de minutos significa "enumere cada minuto, luego seleccione cada noveno valor". Esta selección se restablece en la parte superior de la hora, por lo que reinicia en xx: 00, xx: 09, xx: 18, etc. cada hora.

También se puede leer como "cada nueve minutos de cada hora", lo que implica el restablecimiento en la parte superior de la hora.

Entonces, el comportamiento real que verá corresponde a la opción B.

John
fuente
Esta es la única respuesta que parece responder a la pregunta. ¿Intentaste esto para asegurarte?
gparent
¿En los últimos 10 minutos? No. ¿En los últimos tres meses? Sí, aunque no específicamente en un intervalo de nueve minutos.
John
No veo por qué me importaría cuando lo hicieras, pero solo si. Gracias.
gparent
1
He tenido a antiguos compañeros de trabajo enojados por "no, no lo probaste, ¡confías en tu memoria defectuosa!" en situaciones similares (por supuesto, 5 minutos más tarde se van molestos después de que demuestre que todavía funciona), por lo que he adquirido el hábito de cubrir eso por adelantado.
John
2
El primer paso en las pruebas es asegurarse de que tiene la misma marca y versión que el cliente (en este caso Jesse). No veo ninguna pista aquí hasta ahora sobre qué cron está usando. (Es probable que sea Vixie Cron, y esta característica básica probablemente sea estable en todas las versiones de ese programa).
Kaz
22

Para confirmar la respuesta de John, */nen la columna de minutos significa "cuando el minuto es 0 mod n". Aquí hay una crontabentrada:

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

y aquí está la salida:

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

Tenga en cuenta que la brecha entre las dos últimas veces no es de siete minutos, porque después de nn: 56 la próxima vez que */7coincide es `nn + 1: 07.

Sí, soy consciente de que esos tiempos están en el futuro (o lo fueron cuando publiqué esto); Tuve que conducir el reloj del sistema hacia adelante bastante rápido para obtener una respuesta rápida.

MadHatter
fuente
55
+1 por el esfuerzo :)
Sven