Crontab – Befehle alle x Sekunden ausführen

Aufbau der crontab:
*  *  *  *  *   Befehl
┬ ┬ ┬ ┬ ┬
│ │ │ │ │
│ │ │ │ └──── Wochentag (0-7, Sonntag ist 0 oder 7)
│ │ │ └────── Monat (1-12)
│ │ └──────── Tag (1-31)
│ └────────── Stunde (0-23)
└──────────── Minute (0-59)

Erklärung:
1 2 3 4 5 Befehl

1 = Minute (0-59)
2 = Stunde (0-23)
3 = Tag (0-31)
4 = Monat (1-12)
5 = Wochentag (0-7, Sonntag ist 0 oder 7)
Befehl = Der auszuführende Befehl, am besten mit Pfad

Wie kann man unter Linux mit der crontab ein Script alle paar Sekunden ausführen lassen?
Normalerweise ist die kleinste Zeit – Einheit” 1 x pro Minute, wenn alle Sternchen gesetzt sind

Mit einem Trick kann man trotzdem alle paar Sekunden ein Programm / File starten

Um ein Skript alle 30 Sekunden auszuführen, legt man seinen Cronjob einfach doppelt an
und lässt den zweiten einfach 30 Sekunden schlafen.

Während das erste Skript einmal pro Minute startet, wartet das zweite Skript zunächst 30 Sekunden.

Hier sind mehrere Beispiele, wir gehen davon aus unser Script heisst: mybatch.sh und liegt im Ordner /home/username

Cronjob alle 30 Sekunden ausführen

* * * * *   /home/username/mybatch.sh
* * * * *   sleep 30; /home/username/mybatch.sh


Cronjob alle 15 Sekunden ausführen

Um das Skript alle 15 Sekunden laufen zu lassen, sollte man es vier Mal starten lassenb und die Sleep-Zeit entsprechend anpassen:

* * * * *   /home/username/mybatch.sh
* * * * *   sleep 15; /home/username/mybatch.sh
* * * * *   sleep 30; /home/username/mybatch.sh
* * * * *   sleep 45; /home/username/mybatch.sh


Cronjob alle 10 Sekunden ausführen

Hier noch das Beispiel für alle 10 Sekunden Asuführung…

* * * * *   /home/username/mybatch.sh
* * * * *   sleep 10; /home/username/mybatch.sh
* * * * *   sleep 20; /home/username/mybatch.sh
* * * * *   sleep 30; /home/username/mybatch.sh
* * * * *   sleep 40; /home/username/mybatch.sh
* * * * *   sleep 50; /home/username/mybatch.sh

 

Vielleicht hilft es Euch ja weiter…

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert