Ein Cron-Job-Monitor funktioniert umgekehrt wie eine Website-Prüfung: Ihr Job ruft bei jedem Lauf eine URL auf. Kommt der Aufruf nicht rechtzeitig an, erhalten Sie einen Alarm. Nutzen Sie ihn für Backups, nächtliche Importe, Queue-Worker und alles andere, was läuft, ohne dass jemand zusieht.
Cron-Job-Monitor anlegen
Öffnen Sie Monitors, wählen Sie den Filter Cron jobs und dann New cron job.Wählen Sie unter The job runs entweder On an interval oder On a cron schedule.Geben Sie für einen Cron-Zeitplan die Cron expression aus Ihrer Crontab ein, etwa 0 3 * * *, sowie die Time zone, in der die Crontab des Servers läuft. Das Formular zeigt schon beim Tippen die nächsten Läufe an, und die Sommerzeit wird berücksichtigt.Legen Sie die Grace period fest: wie spät der Ping kommen darf, bevor wir alarmieren.Legen Sie optional eine Maximum run time fest, um alarmiert zu werden, wenn ein Lauf zu lange dauert.Haken Sie die Alarmkanäle an und wählen Sie Create monitor. Kopieren Sie die Ping URL von der Seite, die sich öffnet.
URL aus Ihrem Job aufrufen
Am einfachsten pingt der Job, wenn er erfolgreich war:
0 3 * * * /usr/local/bin/backup.sh && curl -fsS -m 10 –retry 3 -o /dev/null https://app.uptimecheck.com/api/hb/your-token
Mit && verknüpft, wird der Ping nur gesendet, wenn der Job erfolgreich war. GET-, POST- und HEAD-Anfragen zählen gleichermaßen.
Laufzeit, Exit-Codes und Ausgabe
Rufen Sie zu Beginn des Jobs die Ping-URL mit angehängtem /start auf. So sehen Sie, wie lange jeder Lauf gedauert hat, und die maximale Laufzeit kann einen Alarm auslösen.Rufen Sie sie mit /fail oder mit dem Exit-Code auf, etwa /1, um zu melden, wie der Lauf geendet hat. /0 bedeutet Erfolg.Senden Sie die Ausgabe des Jobs per POST, dann wird sie bei Fehlschlägen und im Alarm angezeigt. Wir speichern davon 10.000 Zeichen, Anfang und Ende, und Anfragen über 64 kB werden abgelehnt. Senden Sie bei einem langen Log also den letzten Teil, wie unten gezeigt.
0 3 * * * curl -fsS -m 10 –retry 3 -o /dev/null https://app.uptimecheck.com/api/hb/your-token/start; /usr/local/bin/backup.sh > /tmp/backup.log 2>&1; code=$?; tail -c 60000 /tmp/backup.log | curl -fsS -m 10 –retry 3 –data-binary @- -o /dev/null https://app.uptimecheck.com/api/hb/your-token/$code
Die Seite des Cron-Jobs zeigt beide Beispiele mit Ihrer eigenen Ping-URL; kopieren Sie sie von dort. Für Laravel, Kubernetes, GitHub Actions, systemd und Windows siehe Ping-Beispiele für Cron-Jobs. Mehr zum Cron-Job-Monitoring und dazu, wie Sie Cron-Jobs mit Heartbeats überwachen.