Exempel på pingar för cron-jobb i alla schemaläggare

Uppdaterad oktober 18, 2026 4 min läsning

Varje monitor för cron-jobb har en egen ping-URL, som visas på dess sida. Byt ut https://app.uptimecheck.com/api/hb/your-token nedan mot din egen. Läs hur du övervakar ett cron-jobb för att skapa monitorn.

URL:erna

…/your-token: jobbet kördes och lyckades.…/your-token/start: jobbet startade. Du ser körtiderna, och en körning som överskrider Maximum run time larmar.…/your-token/fail: jobbet misslyckades. Du får ett larm direkt i stället för vid tidsgränsen.…/your-token/0 till /255: slutkoden. 0 betyder att jobbet lyckades, allt annat att det misslyckades.

GET, POST och HEAD fungerar alla, och svaret är OK. En POST-body sparas som jobbets utdata och visas vid fel och i larmet. Vi läser upp till 64 kB och sparar början och slutet, totalt 10 000 tecken. En större body avvisas och pingen går förlorad, så skicka slutet av loggen, som nedan. Token i URL:en är hemligheten, så håll den borta från publika loggar.

Ett omslagsskript för alla schemaläggare

Skriptet kör ett kommando, rapporterar när det startar, dess slutkod och de sista 60 kB utdata, och skickar slutkoden vidare. Spara det som /usr/local/bin/with-ping och kör chmod +x på det.

#!/bin/sh
# with-ping URL COMMAND…: runs COMMAND and reports it to Uptimecheck
url=”$1″; shift
curl -fsS -m 10 –retry 3 -o /dev/null ”$url/start”
log=$(mktemp)
”$@” > ”$log” 2>&1
code=$?
tail -c 60000 ”$log” | curl -fsS -m 10 –retry 3 –data-binary @- -o /dev/null ”$url/$code”
rm -f ”$log”
exit $code

crontab

# Ping when the job succeeds
0 3 * * * /usr/local/bin/backup.sh && curl -fsS -m 10 –retry 3 -o /dev/null https://app.uptimecheck.com/api/hb/your-token

# Or report start, exit code and output with the script above
0 3 * * * /usr/local/bin/with-ping https://app.uptimecheck.com/api/hb/your-token /usr/local/bin/backup.sh

Ge monitorn samma schema och samma Time zone som crontab körs i, ofta UTC.

Laravel scheduler

Laravel pingar URL:er själv. I routes/console.php (Laravel 11 och senare; i tidigare versioner samma metoder på $schedule i app/Console/Kernel.php):

use Illuminate\Support\Facades\Schedule;

Schedule::command(”backup:run”)
->dailyAt(”03:00”)
->pingBefore(”https://app.uptimecheck.com/api/hb/your-token/start”)
->pingOnSuccess(”https://app.uptimecheck.com/api/hb/your-token”)
->pingOnFailure(”https://app.uptimecheck.com/api/hb/your-token/fail”);

Ett fel är ett kommando som avslutas med en annan slutkod än noll. Schemat följer appens tidszon om du inte lägger till ->timezone(); ställ in samma tidszon på monitorn.

Kubernetes CronJob

Spara ping-URL:en som en secret med kubectl create secret generic uptimecheck –from-literal=ping-url=https://app.uptimecheck.com/api/hb/your-token. Imagen behöver curl.

apiVersion: batch/v1
kind: CronJob
metadata:
name: nightly-backup
spec:
schedule: ”0 3 * * *”
timeZone: ”Europe/Stockholm”
concurrencyPolicy: Forbid
jobTemplate:
spec:
backoffLimit: 0
template:
spec:
restartPolicy: Never
containers:
– name: backup
image: registry.example.com/backup:1.4
env:
– name: PING_URL
valueFrom:
secretKeyRef:
name: uptimecheck
key: ping-url
command: [”/bin/sh”, ”-c”]
args:
– |
curl -fsS -m 10 –retry 3 -o /dev/null ”$PING_URL/start”
/app/backup.sh > /tmp/out.log 2>&1
code=$?
tail -c 60000 /tmp/out.log | curl -fsS -m 10 –retry 3 –data-binary @- -o /dev/null ”$PING_URL/$code”
exit $code

Om podden aldrig startar, till exempel för att imagen inte kan hämtas, kommer ingen ping och monitorn larmar vid tidsgränsen. timeZone kräver Kubernetes 1.27 eller senare.

GitHub Actions

on:
schedule:
– cron: ”0 3 * * *”

jobs:
nightly:
runs-on: ubuntu-latest
env:
PING_URL: ${{ secrets.UPTIMECHECK_PING_URL }}
steps:
– uses: actions/checkout@v4
– run: curl -fsS -m 10 –retry 3 -o /dev/null ”$PING_URL/start” || true
– run: ./scripts/nightly.sh
– if: success()
run: curl -fsS -m 10 –retry 3 -o /dev/null ”$PING_URL”
– if: failure()
run: curl -fsS -m 10 –retry 3 -o /dev/null ”$PING_URL/fail”

Spara ping-URL:en som repository-secreten UPTIMECHECK_PING_URL. Ge monitorn arbetsflödets tidszon, som standard UTC. GitHub kan starta schemalagda körningar sent när det är hög belastning, så ange en generös Grace period, till exempel 30 minuter.

systemd-timer

# /etc/systemd/system/backup.service
[Unit]
Description=Nightly backup

[Service]
Type=oneshot
ExecStart=/usr/local/bin/with-ping https://app.uptimecheck.com/api/hb/your-token /usr/local/bin/backup.sh

# /etc/systemd/system/backup.timer
[Unit]
Description=Run the nightly backup

[Timer]
OnCalendar=*-*-* 03:00:00
Persistent=true

[Install]
WantedBy=timers.target

Aktivera den med sudo systemctl daemon-reload och sudo systemctl enable –now backup.timer. OnCalendar följer serverns tidszon.

Windows Task Scheduler

# C:\Scripts\backup-with-ping.ps1
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
$ping = ”https://app.uptimecheck.com/api/hb/your-token”
try { Invoke-RestMethod -Uri ”$ping/start” -TimeoutSec 10 | Out-Null } catch {}
$output = & ”C:\Scripts\backup.cmd” 2>&1 | Out-String
$code = $LASTEXITCODE
if ($output.Length -gt 30000) { $output = $output.Substring($output.Length – 30000) }
Invoke-RestMethod -Uri ”$ping/$code” -Method Post -Body $output -TimeoutSec 10 | Out-Null
exit $code

Registrera det så att det körs varje natt kl. 03.00, i PowerShell som administratör:

$action = New-ScheduledTaskAction -Execute ”powershell.exe” -Argument ”-NoProfile -ExecutionPolicy Bypass -File C:\Scripts\backup-with-ping.ps1”
$trigger = New-ScheduledTaskTrigger -Daily -At 3am
Register-ScheduledTask -TaskName ”Nightly backup” -Action $action -Trigger $trigger -User ”SYSTEM” -RunLevel Highest

Task Scheduler använder datorns tidszon; ställ in samma tidszon på monitorn. Läs mer om cron-uttryck och övervakning av cron-jobb.

Var den här artikeln till hjälp?

Prova i din egen arbetsyta

14 dagar gratis · Sedan gratis för 5 övervakningar · Inget kreditkort

Kommer du inte vidare?

Mejla support@uptimecheck.com så svarar vi inom 24 timmar.

Vill du automatisera? API-referens täcker REST API:t, webhooks, pingar för cron-jobb och MCP.