Cron meldet keine Fehler. Ein Job stürzt ab, der Zeitplan läuft weiter, und du erfährst es Tage später von einem Kunden. Cronitorex erwartet einen Ping von jedem Lauf und alarmiert dich innerhalb von 60 Sekunden, wenn einer ausbleibt.
Jeder Lauf meldet run beim Start, dann complete oder fail beim Ende. Zwei zusätzliche Aufrufe in deinem Crontab reichen aus. Kein Agent, kein Daemon, keine Bibliothek zu installieren.
Aus diesen Pings baut Cronitorex eine Zeitleiste pro Job: Laufzeiten, Exit-Codes, Fehlerverlauf. Ein Lauf, der startet und nie endet, zählt ebenfalls als Fehler.
*/5 * * * * root cronitorex ping db-backup run; /opt/backup.sh && cronitorex ping db-backup complete || cronitorex ping db-backup fail
Ein abgestürzter Server sendet keinen fail-Ping. Cronitorex kennt das erwartete Intervall jedes Jobs und wartet eine zusätzliche Toleranzzeit, um normale Schwankungen abzufangen. Schließt sich dieses Fenster ohne Ping, bekommst du einen Verpasst-Alarm.
Beide Werte legst du pro Monitor selbst fest. Ein nächtliches Backup mit 15 Minuten Toleranzzeit verhält sich anders als ein Sync-Job, der alle 5 Minuten läuft, mit 60 Sekunden Toleranz.
Der cronitorex.sh-Client umgibt deinen Befehl: Er sendet run, führt den Job aus, misst die Dauer, erfasst den Exit-Code und die letzten Zeilen von stderr und schließt dann mit complete oder fail ab. Du änderst ein Wort im Crontab, nicht dein Skript.
Läuft schon ein vollständiges Crontab? Der discover-Befehl liest es aus und erstellt für jeden gefundenen Job einen Monitor, mit dem Zeitplan direkt aus dem Cron-Ausdruck übernommen.
# beliebigen Job einbinden: Exit-Code, Dauer und stderr erfasst cronitorex.sh run db-backup -- /opt/backup.sh # bestehendes Crontab als Monitore importieren cronitorex.sh discover /etc/crontab
Ja. Alles, was eine HTTP-Anfrage senden kann, kann pingen: systemd-Timer, Kubernetes-CronJobs, Airflow-Tasks, GitHub Actions, Windows-Aufgabenplanung. Cronitorex sieht nur die Pings, nicht den dahinterliegenden Scheduler.
Jeder Ping ist ein Event: run, complete, fail oder skip. Ein Job, der stündlich run und complete sendet, erzeugt etwa 1.440 Events pro Monat, sodass die 50.000 Events im Free-Plan Dutzende Jobs abdecken.
Die API beginnt, HTTP 402 zurückzugeben, und neue Pings werden nicht mehr angenommen, bis der Monat zurückgesetzt wird oder du upgradest. Nichts wird gelöscht; Dashboard und Historie bleiben die ganze Zeit verfügbar.
Registrieren, API-Schlüssel holen, curl in deinen Cron einfügen. Das war's.