2013-02-22 3 views
20

Ich versuche, einen einfachen Crontab-Job zu erhalten, der alle 15 Minuten ausgeführt wird, und habe Probleme beim Entscheiden, wie man das Timing formatiert.Crontab Formatierung - alle 15 Minuten

Was ich unten war Putting ist die folgende:

15 * * * * ------------------------ 

Ich bin ziemlich sicher, das läuft nur die ersten 15 Minuten jeder Stunde.

Ich denke, dass crontab ermöglicht es Benutzern, nämlich die genauen Zeiten angeben zu laufen,:

0, 15,30,45 * * * * ------------------------- 

Aber wenn ich wollte die crontab alle 15 Minuten vom Moment, als ich es anfangen laufen, (was sein nicht notwendigerweise auf einen Wert, der durch 15 teilbar ist), wie würde ich das Formatieren machen/ist das möglich?

+0

Was ist "der Moment, den Sie es beginnen"? Wenn Sie "Crontab -e" beendet haben? Wann hast du das System gestartet? –

Antwort

34

Crontab nicht erinnern, wann Sie „gestartet“ (vermutlich die Zeit, die Sie den crontab -e oder crontab filename Befehl ausgeführt).

Wenn Sie den Job alle 15 Minuten ab einer beliebigen Zeit ausführen möchten, müssen Sie diese Zeit angeben. Dieses:

7-59/15 * * * * command 

wird bei 7, 22, 37 und 52 Minuten nach jeder Stunde ausgeführt. Angenommen, Sie verwenden Vixie Cron, was die gebräuchlichste Implementierung ist. Für eine bessere Portabilität, können Sie verwenden:

7,22,37,52 * * * * command 

Und denken Sie daran, dass Sie keine Leerzeichen innerhalb einer der ersten 5 Felder haben kann; 0, 15,30,45, wie Sie in Ihrer Frage hatten, ist ungültig.

+1

Aus Gründen der Übersichtlichkeit - crond läuft einmal pro Minute. Das ist der Daemon, der Crontab-Elemente für Sie ausführt. Wenn Sie Crontab NICHT verwenden, um die Crontab-Datei zu bearbeiten, wird crond die Änderungen nicht sehen. Wenn Sie crontab verwenden, ist "now" die erste Ausführung von crond, nachdem Sie die Datei gespeichert haben. –

+0

@jimmcnamara: Wenn Sie etwas anderes als 'crontab' verwenden, um die Crontab-Datei zu bearbeiten - nun, tun Sie das nicht. Die direkte Bearbeitung der Datei erfordert (a) zu wissen, wo sie sich befindet, und (b) Root-Zugriff zu verwenden. Verwenden Sie keinen Root-Zugriff für * irgendetwas *, es sei denn, es ist tatsächlich notwendig und Sie wissen genau, was Sie tun. –

+1

'7/15' als Minute wird unter Ubuntu 16.04.2 LTS nicht unterstützt. '*/15' funktioniert – sdaffa23fdsf

26

Sie würden die Crontab so formatieren, dass sie alle 15 Minuten ausgeführt wird.

*/15 * * * * [path/to/script]

+9

Die am häufigsten verwendete Crontab-Implementierung unterstützt diese Syntax. Wenn Sie maximale Portabilität benötigen, ändern Sie '*/15' in' 0,15,30,45'. –