Cron Job Timing

8

Ich möchte um 9:30 Uhr mit dem Cron-Job beginnen und dann alle 5 Minuten arbeiten und dann jeden Tag um 16:30 Uhr aufhören. Ist diese Art der Planung in einem möglich oder benötige ich zwei Cron-Jobs?

mustafa
quelle

Antworten:

10

Ich denke etwas in der Art von:

30/5 9-16 * * *  /usr/bin/script_to_run.sh

Weitere Informationen zur Timing-Syntax finden Sie auf der Wiki-Seite . Ich schlage vor, dies mit einem Skript zu testen, das die Zeit protokolliert, zu der es in einer Datei ausgeführt wird.

#!/bin/bash

echo "Cron ran at: " `date` >> /var/log/crontimetest.log
webtoe
quelle
2
Ich war überrascht, dass "30/5" verwendet wurde, also habe ich mir den Cron-Quellcode angesehen, insbesondere entry.c, der jede Zeile einer Crontab analysiert. In der Funktion get_range () wird geprüft, ob das Zeichen nach der ersten Zahl (in diesem Beispiel 30) ein '-' ist oder nicht. Wenn nicht, wird das '/' nie gesehen. das ist ein Fehler; Es sollte eine Warnung (oder eine Fehlermeldung) des Formulars "'/' ist nur nach einem * oder einem nm-Bereich von Bedeutung" gedruckt worden. Entschuldigung Leute!
Paul Vixie
7

Sie benötigen drei Crontab-Einträge:

30-55/5 9 * * * /usr/bin/script-to-run.sh
*/5 10-15 * * * /usr/bin/script-to-run.sh
0-30/5 16 * * * /usr/bin/script-to-run.sh

Bitte beschuldigen Sie nicht Linux, BSD oder mich für die bizarre und nutzlose Syntax von Crontab-Einträgen. Dies wurde bei AT & T Bell Labs erfunden und später als Teil von POSIX standardisiert.

Paul Vixie
quelle
4

Ich denke, Sie brauchen drei Jobs:

 */5 10-15 * * * yourjob
 0,5,10,15,20,25,30 16 * * * yourjob
 30,35,40,45,50,55 9 * * * yourjob
Sven
quelle