Bedeutung des Cron-Eintrags "* * / 1 * * *"?

13

Irgendwie finde ich es schwierig zu verstehen *, wie man mit cron Parameter verändert.

Ich wollte, dass ein Job jede Stunde ausgeführt wird, und habe die folgende Einstellung verwendet:

* */1 * * *

Aber es scheint nicht den Job zu machen. Könnte jemand bitte die Bedeutung von oben erklären und was für den Job benötigt wird?

xyz
quelle
Okay, ich verstehe jetzt: Das Problem ist mit der * Markierung, ich habe in Minuten gesetzt ... * / 1 und * in Stunden bedeuten wahrscheinlich dasselbe obwohl ..
xyz
1
Eigentlich sieht es so aus, als würde es jede Minute laufen! Wenn es überhaupt nicht läuft, haben Sie ein anderes Problem. Was ist die Zeichenfolge, die nach dem von Ihnen geposteten Teil folgt?
Dotancohen

Antworten:

23
  • *bedeutet jeder .
  • */nbedeutet jeden n . (Also */1bedeutet jeder 1. )

Wenn Sie es nur einmal pro Stunde ausführen möchten, müssen Sie das erste Element auf einen anderen Wert setzen *, beispielsweise 20 * * * *, um es stündlich in Minute 20 auszuführen.

Oder wenn Sie die Berechtigung haben, /etc/cron.hourly/ (oder was auch immer auf Ihrem System vorhanden ist) zu schreiben, können Sie dort ein Skript platzieren.

Mann bei der Arbeit
quelle
1
Ich dachte n, bedeutet jeden n. Was ist dann der Unterschied zwischen n und 1 / n?
XYZ
7
nbedeutet genau bei n . Wie oben bedeutet 20 in Minute 20 . 1/nbedeutet ab 1, jede nte . In der Praxis wird dies jedoch als 1-2/n, dh im Intervall von 1 bis 2, jedes n-te verwendet . (Beachten Sie, dass nicht alle cronImplementierungen Intervalle unterstützen.)
manatwork
5
+1, um es einfach /etc/cron.hourlyauf einer modernen Maschine abzulegen. Wir haben jahrzehntelang darauf gewartet, und dafür ist es da!
Aaron D. Marasco
2

Das */1ist überflüssig, du solltest *stattdessen verwenden.

* */1 * * *

führt den Job nicht jede Stunde aus, sondern jede Minute!
Verwenden Sie, um einen Job stündlich auszuführen (um 1:00, 2:00 usw.)

0 * * * *  
dr01
quelle