Cron-ajojen ping-esimerkit kaikille ajastimille

Päivitetty 18 lokakuun, 2026 4 min lukuaika

Jokaisella cron-ajon valvonnalla on oma ping-URL, joka näkyy sen sivulla. Korvaa alla oleva https://app.uptimecheck.com/api/hb/your-token omallasi. Valvonnan luomisesta kerrotaan ohjeessa näin valvot cron-ajoa.

URL-osoitteet

…/your-token: ajo suoritettiin onnistuneesti.…/your-token/start: ajo alkoi. Näet ajojen kestot, ja ajo, joka ylittää rajan Maximum run time, aiheuttaa hälytyksen.…/your-token/fail: ajo epäonnistui. Saat hälytyksen heti etkä vasta määräajan umpeuduttua.…/your-token/0–/255: paluukoodi. 0 tarkoittaa onnistumista, kaikki muu epäonnistumista.

GET, POST ja HEAD toimivat kaikki, ja vastaus on OK. POST-pyynnön runko tallennetaan ajon tulosteeksi, ja se näytetään epäonnistumisten yhteydessä ja hälytyksessä. Luemme enintään 64 kt ja säilytämme alku- ja loppuosan, yhteensä 10 000 merkkiä. Suurempi runko hylätään ja ping menetetään, joten lähetä lokin loppuosa alla olevan esimerkin mukaisesti. URL-osoitteen token on salaisuus, joten pidä se poissa julkisista lokeista.

Kääreskripti mille tahansa ajastimelle

Tämä skripti suorittaa komennon, raportoi sen alkamisen, paluukoodin ja tulosteen viimeiset 60 kt sekä välittää paluukoodin eteenpäin. Tallenna se nimellä /usr/local/bin/with-ping ja aja sille chmod +x.

#!/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

Anna valvonnalle sama aikataulu ja kohtaan Time zone se aikavyöhyke, jossa crontab toimii, usein UTC.

Laravelin ajastin

Laravel pingaa URL-osoitteita itse. Tiedostossa routes/console.php (Laravel 11 ja uudemmat; vanhemmissa versioissa samat metodit objektissa $schedule tiedostossa 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”);

Epäonnistuminen tarkoittaa komentoa, joka päättyy nollasta poikkeavaan paluukoodiin. Aikataulu noudattaa sovelluksen aikavyöhykettä, ellet lisää ->timezone(); aseta sama aikavyöhyke valvontaan.

Kubernetes CronJob

Tallenna ping-URL salaisuudeksi komennolla kubectl create secret generic uptimecheck –from-literal=ping-url=https://app.uptimecheck.com/api/hb/your-token. Imagessa on oltava 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

Jos pod ei koskaan käynnisty, esimerkiksi koska imagea ei saada haettua, pingiä ei tule ja valvonta hälyttää määräajan umpeuduttua. timeZone vaatii Kubernetes 1.27:n tai uudemman.

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”

Tallenna ping-URL repositorion salaisuudeksi nimellä UPTIMECHECK_PING_URL. Anna valvonnalle workflow’n aikavyöhyke, oletuksena UTC. GitHub voi käynnistää ajastetut ajot myöhässä ruuhka-aikoina, joten aseta kohtaan Grace period reilu aika, esimerkiksi 30 minuuttia.

systemd-ajastin

# /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

Ota se käyttöön komennoilla sudo systemctl daemon-reload ja sudo systemctl enable –now backup.timer. OnCalendar noudattaa palvelimen aikavyöhykettä.

Windowsin Tehtävien ajoitus

# 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

Rekisteröi se suoritettavaksi joka yö klo 03.00 PowerShellissä järjestelmänvalvojana:

$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

Tehtävien ajoitus käyttää tietokoneen aikavyöhykettä; aseta sama aikavyöhyke valvontaan. Lue lisää: cron-lausekkeet ja cron-ajojen valvonta.

Oliko tästä artikkelista apua?

Kokeile omassa työtilassasi

14 päivän ilmainen kokeilu · Sen jälkeen ilmainen 5 valvonnalle · Ei luottokorttia

Yhä jumissa?

Lähetä sähköpostia osoitteeseen support@uptimecheck.com, niin vastaamme 24 tunnin kuluessa.

Automatisoitko? API-referenssi kattaa REST API:n, webhookit, cron-ajojen pingit ja MCP:n.